首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >噪声图像中100 in区域差异的检测

问噪声图像中100 in区域差异的检测
EN

Stack Overflow用户
提问于 2015-03-21 17:25:46
回答 2查看 100关注 0票数 0

假设你有一张照片

​

​

如果面积/对比度/色差大于100像素(以平方米计),则需要发出警告。所以算法说是的,,,对这张图片,但是,no,,对于下面的图片

​

可能的工具是

  • ImageMagick的比较,但我不认为这是最好的方法
  • Matlab -这里有内置的函数,但我不知道哪一个。

Matlab R2014b中Shai代码的输出

​

​

​

​

在这之后的一些阶段

  • 为过程分离找到正确的阈值
  • 分离像Shai所描述的过程
  • 做决策??只要找到一个100 so的面积,就算出方格中的白色区域的数量。

如何在两个文件中选择100 can区域差异?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-22 08:25:49

使用积极平均滤波器消除噪声和阈值:

代码语言:javascript
复制
%// read image and convert to single channel gray-scale:
img1 = imread('http://i.stack.imgur.com/ZDoUe.png');
img1 = rgb2gray(img1);
img2 = imread('http://i.stack.imgur.com/TOs0w.png');
img2 = rgb2gray(img2);

%// use aggressive average filter
f1 = imfilter( img1, ones(11)/121, 'symmetric');
f2 = imfilter( img2, ones(11)/121, 'symmetric');

一旦噪声被粗略去除,你就可以对滤波后的图像进行阈值化。

代码语言:javascript
复制
bw1 = f1 > 128;
bw2 = f2 > 128;

由此产生的阈值图像如下:

我相信你可以从这里..。

票数 3
EN

Stack Overflow用户

发布于 2015-03-23 22:12:48

我仍然不明白你的问题,也不明白@Shai的回答有什么问题。据我所见,用ImageMagick解决这个问题就像Shai建议的一样容易,所以我也不明白为什么您认为ImageMagick是错误的方法。也许你可以澄清你真正寻求的是什么,所以我们都可以试着进一步帮助你。

无论如何,就目前而言,我也会以同样的方式对待ImageMagick

代码语言:javascript
复制
convert input.png -blur x5 -threshold 50%  output.png

​

​

如果要计数白色像素,我将克隆图像并将克隆中的所有像素设置为黑色,然后让ImageMagick以绝对的方式告诉我克隆和原始像素之间有多少像素不同,如下所示:

代码语言:javascript
复制
convert output.png \( +clone -evaluate set 0 \) -metric AE -compare -format "%[distortion]" info:

输出

代码语言:javascript
复制
89008

如果您想要计数黑色像素,您可以首先反转(否定)图像,如下所示

代码语言:javascript
复制
convert output.png -negate \( +clone -evaluate set 0 \) -metric AE -compare -format "%[distortion]" info:
93414
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29185724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档