我使用此代码从图像中提取图像的同质部分之间的界限,该部分由另一部分的0构成,主要由1构成。
我想知道如何获取自动代码。我可以解释一下:我在这种情况下找到了界限,因为我手动找到放置掩码的位置(从第500列开始)mask (:, 500: end)
但是我想自动找到值'500'以便这个代码可以做任何事情我给它的形象。
那么如何自动创建我的面具?
img=imread('imgage.png');
figure, imagesc(img),
mask=false(size(img));
mask(:,480:end)=true;
seg = region_seg(img,mask,1000);
figure, imshow(seg);
SE =strel('disk',6);
D=imopen(seg,SE);
imwrite(seg, 'mask.tif')
bw=edge(D);
figure,imshow(bw)
答案 0 :(得分:0)
您可以通过二值化,侵蚀,扩大图像来实现这一目标。这将创建一个“大blob”,其中图像中有信息,而不是。你抓住信息所在的第一个点,并且瞧!,你就行了。
img=imread('https://i.stack.imgur.com/uP973.png');
imgg=rgb2gray(img);
imgbw=im2bw(imgg,graythresh(imgg));
SE = strel('disk', 2, 4);
imgbw=imerode(imgbw,SE);
imgbw=imdilate(imgbw,SE);
[~,indy]=find(imgbw); %slow
indy=min(indy);
% just to show
hold on
imagesc([img]);axis ij; axis tight
plot([indy indy],[1,size(imgg,2)],'red')