声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3302|回复: 9

[GUI界面] 用getrect交互取出了图片感兴趣区域,如何调用?

[复制链接]
发表于 2009-10-7 22:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
用getrect交互取出了图片感兴趣区域,如何调用?如题
我用getrect指令在图上面画出一个感兴趣区域
在Command Window中我得到了

ans =
  213.3193  292.2783  187.5277  159.1518

现在我想对这个感兴趣区域进行平均滤波,如何操作呢?

我的平均滤波的程序是:
c=[1,1,1;1,1,1;1,1,1]
c=c/9
C=conv2(B,c);

弄了半天都没弄出来。。。望大虾们赐教~:hug:
回复
分享到:

使用道具 举报

发表于 2009-10-8 00:17 | 显示全部楼层

回复 楼主 S.A.M 的帖子

试试
load clown; imagesc(X); colormap(gray)
rr=getrect(gcf);
B=X(round(rr(2)):round(rr(2)+rr(4)),round(rr(1)):round(rr(1)+rr(3)));
figure; imagesc(B); colormap(gray)
...
c=[1,1,1;1,1,1;1,1,1]; c=c/9; C=conv2(B,c);

评分

1

查看全部评分

 楼主| 发表于 2009-10-9 22:00 | 显示全部楼层

回复 沙发 ChaChing 的帖子

嗯,谢谢,试了一下
但这个好像是把区域截图出来,单独显示
想要的是把选定的区域进行处理,并就在当前的图像上出来
有什么好的经验吗?呵呵
发表于 2009-10-9 22:51 | 显示全部楼层

回复 板凳 S.A.M 的帖子

图像处理这块个人门外汉, 仅感觉好玩试试, 针对选定的区域进行处理, 不是一样吗
load clown; imagesc(X); colormap(gray); rr=getrect(gcf);
rows=round(rr(2)):round(rr(2)+rr(4)); cols=round(rr(1)):round(rr(1)+rr(3));
B=X(rows,cols);
...  %% 针对B进行处理
X(rows,cols)=B;
clf; imagesc(X); colormap(gray)

评分

1

查看全部评分

 楼主| 发表于 2009-10-10 20:40 | 显示全部楼层

回复 地板 ChaChing 的帖子

谢谢~有效果,不过现在还是没法在我的程序中调好
我的程序目的是做一个GUI,能导入图片,对图片进行手动选择区域滤波
现在用您给的代码已经可以在导入的图片上显示选择框,不过还是没法处理出来
你方便的话能看一看么?非常感谢!

[ 本帖最后由 ChaChing 于 2009-10-14 20:35 编辑 ]

SS1.fig

2.46 KB, 下载次数: 1

SS1.m

5.27 KB, 下载次数: 1

 楼主| 发表于 2009-10-11 18:50 | 显示全部楼层

回复 地板 ChaChing 的帖子

嗯,我已经解决啦
谢谢啦~
发表于 2009-10-11 22:11 | 显示全部楼层
这方面不顶熟, 未能给LZ及时帮忙!
但可以的话, 还是建议LZ与大家分享你的成果, 做个结束!

[ 本帖最后由 ChaChing 于 2009-10-14 20:37 编辑 ]
发表于 2009-10-12 19:57 | 显示全部楼层
我很想学习 谢谢!!!!!!!!
 楼主| 发表于 2009-10-14 18:54 | 显示全部楼层

回复 9楼 ChaChing 的帖子

嗯,相互间的调用我用了全局变量和handles都做出来了
1:用全局变量:在主程序和回调程序前都要注明有“global A;”之后用G = A(rows, cols)即可;
2:用handles的话,需要定义明确:

定义时:
handles.L=A;
guidata(hObject,handles);

调用时:
% --- Executes on button press in pushbutton13.jiaquan-2
function pushbutton13_Callback(hObject, eventdata, handles)
hold on;
rr=getrect(gcf);
rows=round(rr(2)):round(rr(2)+rr(4));
cols=round(rr(1)):round(rr(1)+rr(3));
e=[1,2,1;2,4,2;1,2,1];
e=e/16;
G=handles.L(rows,cols);
M(rows,cols)=G;
M=conv2(G,e);
发表于 2009-10-14 21:36 | 显示全部楼层

回复 9楼 S.A.M 的帖子

怎感觉未全解决!?:@)
1.如若选取范围在图像外, 要出错!
2.滤波后PushButton不见 ...

[ 本帖最后由 ChaChing 于 2009-10-14 22:05 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-30 01:16 , Processed in 0.078818 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表