matlab对bmp局部裁剪,Matlab 对图像的读写,显示,保存,局部图像剪切,替换的操作...

1.编写 M 文件。

用过 Matlab 的人应该都接触过 M 文件,在 Matlab 中编辑 M 文件的方法就是在命令窗口输入 >> edit filename ,我看的第一本 Matlab 的书没有教这个,特别说一下。

>> edit imgReadShowSave

下面代码中的图片我放在工作目录下的 Bitmap 文件夹下。

2.对图像的读写,显示和保存的基本操作

%% 图像的读写,显示保存

% 作者:杨宇东

% 日期:2014.09.22

% 参数:无

% 输出:无

%%

function imgReadShowSave

% 源图片文件名

imgFile = 'Bitmap/1.bmp';

% 新的普通 JPG 格式文件名

newNormalJPGFile = 'Bitmap/newNormalJPGFile.jpg';

% 新的高品质 JPG 格式文件名

newHighQualityJPGFile = 'Bitmap/newHighQualityJPGFile.jpg';

% 新的低品质 JPG 格式文件名

newLowQualityJPGFile = 'Bitmap/newLowQualityJPGFile.jpg';

% 新的 PNG 格式文件名

newPNGFile = 'Bitmap/newPNGFile.png';

fprintf('读取 BMP 图像中...\n');

% 通过 imread 函数将图片文件读入到 img 数组中, img 为三维数组, 分别为纵坐标像素、横坐标像素、 RBG 颜色

img = imread(imgFile);

fprintf('显示 BMP 图像中...\n');

% 在 Matlab 窗口中显示图片

imshow(img);

fprintf('写入 BMP 图像中...\n');

% 将 img 数组写入文件中

imwrite(img, newNormalJPGFile);

% 更常用但仅适用用 JPEG 图像的语法: imwrite(img, filename, quality, q) ,其中 q 是介于 0 到 100

% 的整数(指 JPEG 图像的质量,缘于 JPEG 压缩, q 越小,图像的压缩比越大,质量越差)

imwrite(img, newHighQualityJPGFile, 'quality', 100);

imwrite(img, newLowQualityJPGFile, 'quality', 0);

% 将 img 数组写入文件中

imwrite(img, newPNGFile);

3.图像的局部剪切和替换

%% 图像的局部图像剪切,替换

% 作者:杨宇东

% 日期:2014.09.22

% 参数:无

% 输出:无

%%

function imgCutReplace

% 源图片文件名

imgFile = 'Bitmap/1.bmp';

fprintf('读取 BMP 图像中...\n');

img = imread(imgFile);

% 获取 img 数组的大小, imgSize 为三维,分别为纵坐标大小、横坐标大小、 RBG 颜色

imgSize = size(img);

fprintf('截取一半的图片\n');

% 将图片截取一半

% 纵坐标截取一半的向量

fr = 1:1:imgSize(1)/2;

% 横坐标截取一半的向量

fc = 1:1:imgSize(2)/2;

% RGB 颜色的向量

frgb = 1:1:imgSize(3);

% 通过矩阵元素寻访实现,将 img 中由 fr 指定的行和 fc 指定的列交叉的元素取出来给 imgNew

imgNew = img(fr, fc, frgb);

% 显示图片

imshow(imgNew);

% 将 img 数组赋给新的 imgTemp 数组

imgTemp = img;

fprintf('用图片的左上角替换左下角\n');

% 图片的替换,将左下角内容替换为左上角的内容

% fnr 为要替换的纵坐标向量

fnr = imgSize(1)/2+1:1:imgSize(1);

% 通过矩阵元素寻访实现,将 imgNew 赋值给 imgTemp 中由 fnr 和 fc 指定的行和列交叉的元素,注意 A(fnr,fc,frgb)

% 的行列数应与 imgNew 相等

imgTemp(fnr, fc, frgb) = imgNew;

% 在新窗口中显示图片

figure, imshow(imgTemp);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值