Interpolate Missing data and make line smooth
조회 수: 13 (최근 30일)
이전 댓글 표시
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
답변 (1개)
jonas
2018년 7월 12일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Smoothing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!