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,[]);
原圖
處理後