Matlab图像的代数运算与逻辑运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.imresize函数可将图像调整为指定的大小,语法格式为A=imresize(B,[m,n]),将B图像调整为m行n列的像素大小,A为输出图片。
J=imread('C:\Users\Yang\Desktop\1.jpg');
J=imresize(J,[200,100]); %将图像调整为200行乘以100列个像素大小
imshow(J)
--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------
图像的代数运算
一.图像相加(imadd 函数)
图像是矩阵,图像与图像相加也就是矩阵的相加,两个矩阵对应元素相加,故图像大小和类型必须保持一致。图像与常数相加,是图像矩阵每个元素与该常数相加,相加之和(255为截断阈值)作为返回值。
格式:K=imadd(I,J); I,J是读入的两幅图像,二者中也可有一个是常数,K为相加之和。
I=imread('pears.png'); %读取图像
I=imresize(I,[300,300]);%调整图像尺寸
subplot(221),imshow(I);
title('图1');
J=imread('peppers.png'); %读取图像
J=imresize(J,[300,300]);%调整图像尺寸
subplot(222),imshow(J);
title('图2');
K1=imadd(I,J);
subplot(223),imshow(K1);
title('图像与图像相加')
K2=imadd(J,100);
title('图像与常数相加')
图1与图2相加后,整体亮度变大,叠加效果较为明显,而图像与常数相加相当于在原始图像中每个像素上增加了常数个像素值。
二.图像相减(insubstract)
图像相减,与图像相加原理一样,大小和类型一致的两幅图像对应位置像素做差。
图像与常数相减,即为图像矩阵每个元素与该常数做差,若差值小于0,则该位置像素默认为0.
格式:K=imsubtract(I,J);
该函数在进行图像与常数相减运算时,第二个参数为常数。
将图像相加的imadd换为imsubtract就行了
I=imread('pears.png'); %读取图像
I=imresize(I,[300,300]);%调整图像尺寸
subplot(221),imshow(I);
title('图1');
J=imread('peppers.png'); %读取图像
J=imresize(J,[300,300]);%调整图像尺寸
subplot(222),imshow(J);
title('图2');
K1=imsubtract(I,J);
subplot(223),imshow(K1);
title('图像与图像相减')
K2=imsubtract(J,100);
title('图像与常数相减');
可以看到,图1与图2相减后,整体亮度变小了,相减效果较为明显。
图像与常数相减相当于在原始图像中每个像素上减少了常数个像素值,故整体图像变暗。
三.图像相乘(immultiply)
图像相乘,原理同矩阵相加,相同大小的图像矩阵中对应元素乘积作为新的像素值。
格式:A=immultiply(B,C);
Img1=imread('saturn.png');
Img1=rgb2gray(Img1); %彩图灰度化
subplot(221),imshow(Img1);
title('图1');
[m,n]=size(Img1); %获得图像尺寸
Img2=imread('rice.png');
subplot(222),imshow(Img2);
title('图2');
Img2=imresize(Img2,[m,n]); %改变大小与图1保持一致
Img_multiply1=immultiply(Img1,Img2);
subplot(223),imshow(Img_multiply1);
title('图像与图像相乘');
Img_multiply2=immultiply(Img1,2);
subplot(224),imshow(Img_multiply2);
title('图像与常数像相乘');
图1是彩色图像,根据乘法运算法则,需将其进行灰度化,然后才能与图2相乘。
图1中周边部分区域像素值较低,故乘积后像素值依然很小,结果呈现黑色。
四.图像相除(imdivide)
图像相除,是指两幅图像矩阵对应的元素相除,商值作为结果图像相应位置元素的值。
Img1=imread('rice.png');
subplot(221),imshow(Img1);
title('图1');
[m,n]=size(Img1); %获得图像尺寸
Img2=imread('moon.tif');
subplot(222),imshow(Img2);
title('图2');
Img2=imresize(Img2,[m,n]); %改变大小与图1保持一致
Img_divide1=imdivide(Img1,Img2);