在matlab中裁剪图像

Posted

技术标签:

【中文标题】在matlab中裁剪图像【英文标题】:Cropping an image in matlab 【发布时间】:2013-03-21 06:34:59 【问题描述】:

是否可以沿特定曲线裁剪图像。例如。我想从这个图像中裁剪出手指图像,但我不想沿着矩形裁剪它。

【问题讨论】:

您有想要裁剪的曲线坐标吗?如果有,采用哪种格式? 你需要找到一个感兴趣的对象,制作它的二进制掩码并在掩码上乘以图像。阅读有关边界查找和填充的信息。 你知道它最终会变成一个矩形,因为 Matlab 需要在某种二维数组中表示相关点... 检查可以形成多边形二进制掩码的roipoly。所以你可以用多边形来近似曲线。 【参考方案1】:

您需要一个二进制掩码并将该掩码应用为 alpha 映射 这是通常的做法

s = 100;
h = imagesc(rand(s));%show some garbage

%prepare a circular mask
dummy = meshgrid(-s/2:s/2-1).^2;%squared distances from the center
mask =  sqrt(dummy+dummy') < 20;%20 is the radius of your mask

%here you go, mask the image in a curved manner
set(h,'alphaData',mask);

将其导出为 png 就可以了。

因此,在您的情况下,您需要制作自己的蒙版,这意味着要么对位图图像设置阈值,要么对空间进行参数化(就像我在上面的圆圈中所做的那样)。

【讨论】:

以上是关于在matlab中裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

Matlab:从二值图像裁剪对象

怎么用matlab对图像进行裁剪

不使用内置函数进行图像裁剪的matlab代码

如何仅使用for循环在matlab中裁剪图像? [复制]

根据对象边界框裁剪旋转图像 - Matlab

图像拼接基于matlab最低能量线裁剪图像拼接含Matlab源码 2127期