Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB图像处理帮助!_Matlab_Image Processing - Fatal编程技术网

MATLAB图像处理帮助!

MATLAB图像处理帮助!,matlab,image-processing,Matlab,Image Processing,我试图找到图像上某些区域的面积 例如,我想在左上侧找到黑色大区域的区域。 我想从图像中找到任何闭合几何体的面积 如何在matlab中实现这一点 我在线查看并尝试了regionprops(),但它没有识别不同的区域。使用“imfilter”过滤图像。使用“fspecial”定义过滤器。然后使用活动轮廓模型分割大对象。谷歌“活动轮廓matlab”。使用“多边形”和“面积”函数查找封闭轮廓的面积 使用“imfilter”过滤图像。使用“fspecial”定义过滤器。然后使用活动轮廓模型分割大对象。谷

我试图找到图像上某些区域的面积

例如,我想在左上侧找到黑色大区域的区域。 我想从图像中找到任何闭合几何体的面积

如何在matlab中实现这一点


我在线查看并尝试了regionprops(),但它没有识别不同的区域。

使用“imfilter”过滤图像。使用“fspecial”定义过滤器。然后使用活动轮廓模型分割大对象。谷歌“活动轮廓matlab”。使用“多边形”和“面积”函数查找封闭轮廓的面积

使用“imfilter”过滤图像。使用“fspecial”定义过滤器。然后使用活动轮廓模型分割大对象。谷歌“活动轮廓matlab”。使用“多边形”和“面积”函数查找封闭轮廓的面积

要补充hkf的答案,您可能需要对图像进行一些预处理,使其更易于处理

我认为你在减少噪音方面做得对。你的轮廓看起来相对容易检测-也许你可以简单地对你的图像进行二值化,应用imdeflate、imclose和imerode的组合来处理伪影(这主要是反复试验),然后尝试检测轮廓


当然,接下来的挑战是找到一个适用于所有图像的配方,而不仅仅是一个样本

要补充hkf的答案,您可能需要对图像进行一些预处理,使其更易于处理

我认为你在减少噪音方面做得对。你的轮廓看起来相对容易检测-也许你可以简单地对你的图像进行二值化,应用imdeflate、imclose和imerode的组合来处理伪影(这主要是反复试验),然后尝试检测轮廓


当然,接下来的挑战是找到一个适用于所有图像的配方,而不仅仅是一个样本

我可以告诉你一些方法:

a) 算术平均值过滤器:

f = imfilter(g, fspecial('average', [m n]))
b) 几何平均滤波器

f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');
c) 调和平均滤波器

f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');

其中
n
m
是掩码的大小(对于Instance,您可以设置
m=3 n=3

我可以向您推荐几种方法:

a) 算术平均值过滤器:

f = imfilter(g, fspecial('average', [m n]))
b) 几何平均滤波器

f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');
c) 调和平均滤波器

f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');

其中
n
m
是掩码的大小(对于Instance,您可以设置
m=3 n=3

我认为您可以使用轮廓方法解决此问题。最后,您可以借助轮廓数据提取功能进行提取。研究,你会在Mathworks网站上看到

我想你可以用轮廓法来解决这个问题。最后,您可以借助轮廓数据提取功能进行提取。研究,你会在Mathworks网站上看到

我在mathworks网站上尝试了一些用于活动轮廓绘制的代码。其中一些有效,但我无法获得任何区域,并且对小区域无效!我想先裁剪图片,以消除任何噪音,然后我用imadjust稍微调整对比度。我需要任何例子来更好地理解它。您应该能够使用[C,h]=轮廓(…)提取轮廓的x和y坐标。请参阅,然后查看此链接以找到该区域:活动轮廓与任何其他图像处理方法一样都不是完美的。您必须对模型的参数进行试验,以满足您的需要。另外一个好主意是对活动轮廓方法进行文献搜索,并自己在MATLAB中实现它们。这应该很有趣!我在mathworks网站上尝试了一些用于活动轮廓绘制的代码。其中一些有效,但我无法获得任何区域,并且对小区域无效!我想先裁剪图片,以消除任何噪音,然后我用imadjust稍微调整对比度。我需要任何例子来更好地理解它。您应该能够使用[C,h]=轮廓(…)提取轮廓的x和y坐标。请参阅,然后查看此链接以找到该区域:活动轮廓与任何其他图像处理方法一样都不是完美的。您必须对模型的参数进行试验,以满足您的需要。另外一个好主意是对活动轮廓方法进行文献搜索,并自己在MATLAB中实现它们。这应该很有趣!我喜欢使用imdeplate、imclose和imerode的方法,但是有没有办法消除主形状周围的所有噪音。我的意思是一些物体靠近图像的边界,这会导致问题。我在mathworks的演示中看到了它,但不确定它的名字是什么!这就是我正在制作的图像。我想填充里面的白色区域,平滑边界,消除周围的噪音。我试着用iclose和ierode,并没有真正改变。提前感谢,我喜欢使用imdeplate、imclose和imerode的方法,但是有没有办法消除主形状周围的所有噪音。我的意思是一些物体靠近图像的边界,这会导致问题。我在mathworks的演示中看到了它,但不确定它的名字是什么!这就是我正在制作的图像。我想填充里面的白色区域,平滑边界,消除周围的噪音。我试着用iclose和ierode,并没有真正改变。提前谢谢