您的位置:首页 > 编程语言 > MATLAB

获取图片中感兴趣区域的信息(Matlab实现)

2016-06-19 21:41 288 查看

内容提要

如果一幅图中只有一小部分图像你感兴趣(你想研究的部分),那么截图工具就可以了,但是如果你想知道这个区域在原图像中的坐标位置呢? 这可是截图工具所办不到的,前段时间我就需要这个功能,于是将其用Matlab实现。

其实只要用到Matlab中的两个函数:

函数:
imrect


函数:
getPosition


如果要截取其中的部分图像,就离不开下面的函数:

函数:
imcrop


代码实现

clc;
clear;
close all;
%----------------------------------------
%                Matlab截图程序
%----------------------------------------

[filename, pathname] = uigetfile({'*.jpg'; '*.bmp'; '*.gif'; '*.png' }, '选择图片');
%没有图像
if filename == 0
return;
end

src = imread([pathname, filename]);
[m, n, z] = size(src);
figure(1)
imshow(src)%显示原图像
%----------------------------------------
%画图后:
h=imrect;%鼠标变成十字,用来选取感兴趣区域

%----------------------------------------
%图中就会出现可以拖动以及改变大小的矩形框,选好位置后:
%----------------------------------------
pos=getPosition(h);

%----------------------------------------
%pos有四个值,分别是矩形框的左下角点的坐标 x y 和 框的 宽度和高度
%----------------------------------------

%----------------------------------------
%拷贝选取图片
%----------------------------------------
imCp = imcrop( src, pos );
figure(2)
imshow(imCp);


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

效果展示

图中的区域信息为:

pos =

255.8263   65.1737   87.5789   87.5789
%    x          y        dx         dy
%左上角点(x,y), 区域长宽(dx,dy)


1

2

3

4

5

6

1

2

3

4

5

6

不要忘了图像坐标系的x和y的方向



from: http://blog.csdn.net/humanking7/article/details/46822349
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: