急,求救高手:matlab图像处理,怎样用imcrop选取任意多边形的区域

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:48:03
图像是彩色的,要选取任意多边形的区域,不要矩形区域。我用ginput选取5个点,为什么输出不是我选择的点所包围的区域呢?程序:
I=imread(‘文件名’); %读取彩色图像
[x,y]=ginput(5);
gains=imcrop(I,x,y);
RGB=gains;
imshow(RGB)
这样做错在哪,或者有没有其他的方法可以实现。
谢谢你的回答,我知道roipoly可以选取多边形,但是它的输出是二值图像,我想要输出的就是选取的,怎么办呢,我对roipoly的用途不是很清楚,能给我讲一下吗?多谢

好像roipoly不能用于彩色图像吧

算了,就你自己回答,分给你吧,辛苦了

首先你应该先把图像显示出来才便于取点,然后imcrop好像只能用于矩形的,如果要多边形的话可以参照roipoly函数,具体看帮助。下面的程序可以参考,实际涉及到图像的类型等还有些许问题要考虑。
I=imread('mona.jpg');
BW=roipoly;
M=uint8(BW.*256)-I;
figure;imshow(M);