artifacts in processed images

2019-04-19 02:15发布

This question is related to my previous post Image Processing Algorithm in Matlab in stackoverflow, which I already got the results that I wanted to.

But now I am facing another problem, and getting some artefacts in the process images. In my original images (stack of 600 images) I can't see any artefacts, please see the original image from finger nail:

enter image description here

But in my 10 processed results I can see these lines:

enter image description here

I really don't know where they come from?

Also if they belong to the camera's sensor why can't I see them in my original images? Any idea?

Edit:

I have added the following code suggested by @Jonas. It reduces the artefact, but does not completely remove them.

%averaging of images
im = D{1}(:,:);
for i = 2:100
 im = imadd(im,D{i}(:,:));
end
im = im/100;
imshow(im,[]);

for i=1:100
SD{i}(:,:)=imsubtract(D{i}(:,:),im(:,:))
end

@belisarius has asked for more images, so I am going to upload 4 images from my finger with speckle pattern and 4 images from black background size( 1280x1024 ):

image1 image2 image3 iamge4

And here is the black background:

blackbackground1 blackbackground2 blackbackground3

7条回答
走好不送
2楼-- · 2019-04-19 03:13

You could use some sort of morphological opening to remove the thin vertical lines:

img = imread('image.png');
SE = strel('line',2,0);
img2 = imdilate(imerode(img,SE),SE);

subplot(121), imshow(img)
subplot(122), imshow(img2)

screenshot

The structuring element used was:

>> SE.getnhood
ans =
     1     1     1
查看更多
登录 后发表回答