在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中裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章