Leighton_buaa 发表于 2006-10-12 20:13

如何确定图片中某一区域的位置

请问各位matlab高手:
我在matlab中已经读入了一幅图片,现在我想在图片上用鼠标选定某一区域,并想确定这一区域对应在图片矩阵上的位置,请问如何来实现阿?
万分谢谢了!!!

====================eight===============
更多细节请参阅以下帖子:
[原创]交互式选取图象感兴趣部分(矩形窗或任意区域)
======================================

[ 本帖最后由 eight 于 2008-5-4 21:36 编辑 ]

eight 发表于 2006-10-12 21:26

原帖由 Leighton_buaa 于 2006-10-12 20:13 发表
请问各位matlab高手:
我在matlab中已经读入了一幅图片,现在我想在图片上用鼠标选定某一区域,并想确定这一区域对应在图片矩阵上的位置,请问如何来实现阿?
万分谢谢了!!!


所有图像都是画在axes上面的,所以getrect绝对满足你的需要

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('Position',, 'edgecolor','red');
figure(2);
bw = roipoly(A,r(1,:),r(2,:));
B = A(bw);
B = reshape(B, h, w);
imshow(B);

Leighton_buaa 发表于 2006-10-14 15:02

原帖由 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的强大功能了,赫赫~~

gaoshsh 发表于 2007-7-10 16:36

eight兄:在用鼠标拉一个较大的区域时,出错了,提示:
“To RESHAPE the number of elements must not change.”

eight 发表于 2007-7-10 18:27

原帖由 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);就是不允许的

yangbao316 发表于 2008-5-4 10:07

同问

恩,这个问题也很想知道解决方法阿 毕设里面就要用到这个

dess2211 发表于 2008-5-4 17:18

学习了感谢eight,
强大!:hug:

toidy 发表于 2009-4-7 10:47

为什么只支持灰度图啊?

问题如标题。

ydlcsu 发表于 2009-4-7 11:51

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]
查看完整版本: 如何确定图片中某一区域的位置