【问题标题】:for loop causing bad text segmentation in matlabfor循环导致matlab中的错误文本分割
【发布时间】:2017-07-10 01:02:57
【问题描述】:

输入图像是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

请帮忙 谢谢

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。
  • 我只需要正确分割每个图像一次。但是这段代码将每个图像分割了很多次。
  • “分段这么多次”是什么意思?这段代码甚至不完整。 regionprops 需要 2 个输入。
  • 但仅对一张图像使用相同的代码,我得到了正确的分割图像!
  • 我的代码已满。二值化或其他部分我放在另一个脚本中。调用该脚本我只是在这个脚本中分割这些图像。

标签: image matlab for-loop text-segmentation


【解决方案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;

【讨论】:

  • 非常感谢!但是在为什么不保存分段图像的文件夹中。只保存二进制图像
  • @EifaTasnim 请不要更改问题。如果您有新问题,请提出新问题。另外,如果这解决了您的问题,请接受它为有效
  • 抱歉。我将编辑第一个问题。请问您能回答我当前的问题吗?
猜你喜欢
  • 2018-04-21
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 2015-04-15
  • 1970-01-01
相关资源
最近更新 更多