如何确定图片中某一区域的位置
请问各位matlab高手:我在matlab中已经读入了一幅图片,现在我想在图片上用鼠标选定某一区域,并想确定这一区域对应在图片矩阵上的位置,请问如何来实现阿?
万分谢谢了!!!
====================eight===============
更多细节请参阅以下帖子:
[原创]交互式选取图象感兴趣部分(矩形窗或任意区域)
======================================
[ 本帖最后由 eight 于 2008-5-4 21:36 编辑 ] 原帖由 Leighton_buaa 于 2006-10-12 20:13 发表
请问各位matlab高手:
我在matlab中已经读入了一幅图片,现在我想在图片上用鼠标选定某一区域,并想确定这一区域对应在图片矩阵上的位置,请问如何来实现阿?
万分谢谢了!!!
所有图像都是画在axes上面的,所以getrect绝对满足你的需要 做了一个简单的,目前仅支持灰度图片
hf = figure(1);
A = imread('board.tif');
A = rgb2gray(A);
imshow(A)
rect = getrect(hf);
w = round(rect(3));
h = round(rect(4));
r = ;
rectangle('Position',, 'edgecolor','red');
figure(2);
bw = roipoly(A,r(1,:),r(2,:));
B = A(bw);
B = reshape(B, h, w);
imshow(B); 原帖由 eight 于 2006-10-12 22:02 发表
做了一个简单的,目前仅支持灰度图片
hf = figure(1);
A = imread('board.tif');
A = rgb2gray(A);
imshow(A)
rect = getrect(hf);
w = round(rect(3));
h = round(rect(4));
r = ;
rectangle('Positi ...
谢谢了阿,现在开始体验到matlab的强大功能了,赫赫~~ eight兄:在用鼠标拉一个较大的区域时,出错了,提示:
“To RESHAPE the number of elements must not change.” 原帖由 gaoshsh 于 2007-7-10 16:36 发表 http://www.chinavib.com/forum/images/common/back.gif
eight兄:在用鼠标拉一个较大的区域时,出错了,提示:
“To RESHAPE the number of elements must not change.”
reshape函数要求变换前后的元素总个数不变,你自己调试一下吧。
例如 A=,则 B=reshape(A,2,3); 是允许的,但是 B=reshape(A,2,4);就是不允许的
同问
恩,这个问题也很想知道解决方法阿 毕设里面就要用到这个 学习了感谢eight,强大!:hug:
为什么只支持灰度图啊?
问题如标题。 bw = roipoly(A,r(1,:),r(2,:));B = A(bw);
B = reshape(B, h, w);
这三句命令有什么特别的作用?为什么要这样转来转去?我对图像处理不熟悉。
rect1=round(rect);
B=A(rect1(2):rect1(2)+rect1(4)-1,rect1(1):rect1(1)+rect(3)-1,:); %支持RGB图片
[ 本帖最后由 ydlcsu 于 2009-4-7 11:54 编辑 ]
页:
[1]