bm=imread("3.png"); %subplot(1,3,1); imshow(bm); %缩放图片 %bt=imresize(bm,0.5,'nearest'); %图片旋转,第三个参数可选,逆时针旋转 theta=30; bt=imrotate(bm,theta,'crop'); %subplot(1,3,2); figure,imshow(bt)
'crop'表示旋转时,是否切割。ide
在MATLAB中,若是要进行两幅图像的加法,或者给一幅图像加上一个常数,能够调用imadd函数来实现。imadd函数将某一幅输入图像的每个像素值与另外一幅图像相应的像素值相加,返回相应的像素值之和做为输出图像。imadd函数的调用格式以下:函数
Z = imadd(X,Y)ui
其中,X和Y表示须要相加的两幅图像,返回值Z表示获得的加法操做结果。rest
I=imread('3.png'); J=imread('4.png'); n = size(I,2); m = size(J,2); if n > m n = m; end i = size(I,1); j = size(J,1); if i > j i = j; end k = size(I,3); t = size(J,3); if k > t k = t; end %图像叠加 K=imadd(I(1:i,1:n,1:k),J(1:i,1:n,1:k)); imshow(K)
bm=imread('3.png'); subplot(1,3,1); imshow(bm); %亮度变化 bt=imadd(bm,50); subplot(1,3,2); imshow(bt) %figure, bs=imadd(bm,-50); subplot(1,3,3); imshow(bs)
图像减法也称为差分方法,是一种经常使用于检测图像变化及运动物体的图像处理方法。图像减法能够做为许多图像处理工做的准备步骤。例如,能够使用图像减法来检测一系列相同场景图像的差别。图像减法与阈值化处理的综合使用每每是创建机器视觉系统最有效的方法之一。在利用图像减法处理图像时每每须要考虑背景的更新机制,尽可能补偿因为天气、光照等因素对图像显示效果形成的影响。blog
在MATLAB中,使用imsubtract函数能够将一幅图像从另外一幅图像中减去,或者从一幅图像中减去一个常数。imsubtract函数将一幅输入图像的像素值从另外一幅输入图像相应的像素值中减去,再将这个结果做为输出图像相应的像素值。imsubtract函数的调用格式以下:图片
Z = imsubtract(X,Y);ip
clc; clear; close all; rice=imread('12.jpg'); I=rice(:,:,1); %生成背景图 bk=imopen(I,strel('disk',15)); %原图(灰度)-背景 rice2=imsubtract(I,bk); %背景 figure,imshow(bk); %原图(灰度) figure,imshow(I); %去背景以后 figure,imshow(rice2)
原图(灰度)it
背景图像处理
去除背景以后class
两幅图像进行乘法运算能够实现掩模操做,即屏蔽掉图像的某些部分。一幅图像乘以一个常数一般被称为缩放,这是一种常见的图像处理操做。若是使用的缩放因子大于1,那么将加强图像的亮度,若是因子小于1则会使图像变暗。缩放一般将产生比简单添加像素偏移量天然得多的明暗效果,这是由于这种操做可以更好地维持图像的相关对比度。此外,因为时域的卷积或相关运算与频域的乘积运算对应,所以乘法运算有时也被做为一种技巧来实现卷积或相关处理。
在MATLAB中,使用immultiply函数实现两幅图像的乘法。immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操做(MATLAB点乘),并将乘法的运算结果做为输出图形相应的像素值。immulitply函数的调用格式以下:
Z = immulitply(X,Y)
clc,clear,close all; I=imread('3.png'); %图像缩放,获得更明亮的图 J=immultiply(I,1.5); subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(J);
除法运算可用于校订成像设备的非线性影响,这在特殊形态的图像(如断层扫描等医学图像)处理中经常用到。图像除法也能够用来检测两幅图像间的区别,可是除法操做给出的是相应像素值的变化比率,而不是每一个像素的绝对差别,于是图像除法也称为比率变换。
在MATLAB中使用imdivide函数进行两幅图像的除法。imdivide函数对两幅输入图像的全部相应像素执行元素对元素的除法操做(点除),并将获得的结果做为输出图像的相应像素值。imdivide函数的调用格式以下:
Z = imdivide(X,Y)
clc,clear,close all; rice=imread('4.png'); rice=rice(:,:,1); I=double(rice); J=I*0.53+95; rice2=uint8(J); lp=imdivide(rice,rice2); imshow(lp,[]);
原图
处理后