请问,matlab中,如何将一幅从原图截取出来的一部分,还保存为原图的格式呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问,matlab中,如何将一幅从原图截取出来的一部分,还保存为原图的格式呢?相关的知识,希望对你有一定的参考价值。
如下是代码,y是原图,yc是截取图像中的一块区域,现在问题是如何保存这一块图像呢?(新图的大小是[120*120],格式是".png")
y= im2double(imread('Cameraman256.png' ));
x00=[81 200];
y00=[61 180];
yc=imcrop(y,[min(x00(1),x00(2)),min(y00(1),y00(2)),abs(x00(2)-x00(1)),abs(y00(2)-y00(1))]);
>> A=rgb2gray(A);
>> A=im2double(A);
>> subplot(1,2,1);
>> imshow(A);
>> title('yuantu');
>> B=zeros(256,256);
>> B(40:200,40:200)=1;
>> K=A.*B;
>> subplot(1,2,2);
>> imshow(K);
>> title('jubutu'); 参考技术C imwrite(yc,'cameraman.png')本回答被提问者采纳
获取图片中感兴趣区域的信息(Matlab实现)
内容提要
如果一幅图中只有一小部分图像你感兴趣(你想研究的部分),那么截图工具就可以了,但是如果你想知道这个区域在原图像中的坐标位置呢? 这可是截图工具所办不到的,前段时间我就需要这个功能,于是将其用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
以上是关于请问,matlab中,如何将一幅从原图截取出来的一部分,还保存为原图的格式呢?的主要内容,如果未能解决你的问题,请参考以下文章