Interpolate Missing data and make line smooth
1 view (last 30 days)
Show older comments
Hi all
I have multiple images. each image has a line, I want to interpolate the missing value in the line and make the line smooth . and also auto correct the next pixel of line if it has the next point out of order. some images are attached
this is my input image
the output is like that
0 Comments
Answers (1)
jonas
on 12 Jul 2018
Try this.
GRAY=imread('204.jpg');
threshold = graythresh(GRAY);
BW = im2bw(GRAY, threshold);
%%Find Coordinates of images and smooth
[y,x]=find(BW==1);
win=15;
y=smooth(x,y,win);
%%interpolate
[x, index] = unique(x);
xq=1:256
yq = interp1(x, y2(index), xq,'linear','extrap');
%%Create figure from plot
out=zeros(size(BW));
out(sub2ind(size(GRAY),round(yq'),xq'))=1;
%%Plot
figure;
subplot(1,2,1)
imshow(out);
title('new')
subplot(1,2,2)
imshow(GRAY);
title('original')
0 Comments
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!