Matlab图像处理中运用区域二值,输出图像全黑的问题..
[a,b]=size(input);fori=1:a/32forj=1:b/32operatingRegion=input(32*(i-1)+1:32*i,32*(j-1...
[a,b] = size(input);
for i = 1:a/32
for j = 1:b/32
operatingRegion = input (32*(i-1)+1:32*i,32*(j-1)+1:32*j);
thresh = graythresh(operatingRegion);
operatingRegion = im2bw (operatingRegion, thresh);
input (32*(i-1)+1:32*i,32*(j-1)+1:32*j) = operatingRegion;
end
end
imshow(input);
刚刚接触matlab,想做个提取图片中特定信息的程序。input为一张灰度图,想法基本上是把图像分成若干32×32的区块,各自使用Ostu阈值分割确定阈值,二值化之后把该区块填回原图。然而结果是一片黑...简单测试以后发现貌似是这里开始出问题input (32*(i-1)+1:32*i,32*(j-1)+1:32*j) = operatingRegion;。请问是什么原因?怎么解决这个问题呢? 展开
for i = 1:a/32
for j = 1:b/32
operatingRegion = input (32*(i-1)+1:32*i,32*(j-1)+1:32*j);
thresh = graythresh(operatingRegion);
operatingRegion = im2bw (operatingRegion, thresh);
input (32*(i-1)+1:32*i,32*(j-1)+1:32*j) = operatingRegion;
end
end
imshow(input);
刚刚接触matlab,想做个提取图片中特定信息的程序。input为一张灰度图,想法基本上是把图像分成若干32×32的区块,各自使用Ostu阈值分割确定阈值,二值化之后把该区块填回原图。然而结果是一片黑...简单测试以后发现貌似是这里开始出问题input (32*(i-1)+1:32*i,32*(j-1)+1:32*j) = operatingRegion;。请问是什么原因?怎么解决这个问题呢? 展开
展开全部
原因是:operatingRegion = im2bw (operatingRegion, thresh);得的数据是0和1,所以,input (32*(i-1)+1:32*i,32*(j-1)+1:32*j)也是0和1,而imshow(input)显示的范围是[0,255],1/255近似于0,所以,全显示为黑色。我给你改下:
[a,b] = size(input);
for i = 1:a/32
for j = 1:b/32
operatingRegion = input (32*(i-1)+1:32*i,32*(j-1)+1:32*j);
thresh = graythresh(operatingRegion);
operatingRegion = im2bw (operatingRegion, thresh);
input (32*(i-1)+1:32*i,32*(j-1)+1:32*j) = operatingRegion*255;
end
end
imshow(input);
按上面语句试试
[a,b] = size(input);
for i = 1:a/32
for j = 1:b/32
operatingRegion = input (32*(i-1)+1:32*i,32*(j-1)+1:32*j);
thresh = graythresh(operatingRegion);
operatingRegion = im2bw (operatingRegion, thresh);
input (32*(i-1)+1:32*i,32*(j-1)+1:32*j) = operatingRegion*255;
end
end
imshow(input);
按上面语句试试
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询