for循环导致matlab中的错误文本分割

时间:2017-02-20 16:39:14

标签: image matlab for-loop text-segmentation

输入图片为a.jpgb.jpg 这两个图像存储在例如comp文件夹中。并且想要在分段文件夹中编写分段图像。但我认为循环问题分段对于每个图像重复多次。我无法解决问题。 这是我的代码

Resultado='C:\Users\Nurul\Desktop\picsegment';
srcFiles = dir('C:\Users\Nurul\Desktop\comp\*.jpg');  
for i = 1 : length(srcFiles)
filename = strcat('C:\Users\Nurul\Desktop\comp\',srcFiles(i).name);
a = imread(filename);
LLL=a;
s=regionprops(LLL); 

figure,imshow(LLL);    title('segmented Image');
  hold on
for J=1:numel(s)  
 rectangle('Position',s(J).BoundingBox,'edgecolor','g')
 end
 im1=LLL;
 baseFileName = sprintf('%d.jpg', i); % e.g. "1.png"
 fullFileName = fullfile(Resultado, baseFileName); 
  imwrite(im1, fullFileName);
  end

plz帮助 感谢

1 个答案:

答案 0 :(得分:1)

您将数据保存为jpg,这是一个很大的错误!

但是,如果您想将数据保存为jpg,请记住它不会保存为二进制图像,这意味着您需要再次对其进行二值化!否则,每个小像素噪声将被regionprops检测为数据,这就是为什么你得到这么多正方形。

添加

a = imread(filename);

a=im2bw(a,0.5); % Add this line. The fancy way would be im2bw(a,graythresh(a)), but 0.5 will do in your case

LLL=a;

enter image description here