9.3 图像变换(尺寸变换、旋转变换、灰度变换和数据类型变换)
1、圖像尺寸變換:imresize函數
功能:縮放圖像
格式:B = imresize(A, m)
B = imresize(A, [nrow ncol],method)
返回圖像B是原圖像A的m倍,m大于1時放大圖像,m小于1 時縮小圖像。nrow和ncol為目標圖像的高度和寬度。method改變圖像時所用算法: ’ nearest’:最近鄰插值算法;‘bilinear’:雙線性插值算法;‘bicubic’: 雙三次插值算法。
例1:圖像尺寸變換
I = imread('xueren.png'); figure subplot(1,2,1); imshow(I); %子圖1顯示原圖 subplot(1,2,2); J = imresize(I,0.25); imshow(J); %子圖2顯示縮小的圖像,為了保持和子圖1的大小相同,縮小后的圖片放大后分辨率降低2、圖像旋轉變換:imrotate函數
功能:將圖像旋轉為若干角度
格式:bw=imrotate(I,r, p)
I為要旋轉的圖像矩陣,r為旋轉角度,p為參數
例2:圖像旋轉變換
3、圖像灰度變換:imhist函數、histeq函數、imadjust函數
(1)imhist函數
功能:用于獲取圖像數據的灰度直方圖,即統計圖中256個灰度級在圖像中出現的次數
格式:imhist(I)、imhist(I,n)
I為灰度圖像,n為指定的灰度級
例3:獲得圖像的灰度直方圖
I = imread('sheep.png'); J = rgb2gray(I); subplot(1,3,1) imshow(J); %顯示灰度圖 title('灰度圖'); subplot(1,3,2) imhist(J); %顯示256灰度直方圖 title('256灰度直方圖'); subplot(1,3,3) imhist(J,42); %顯示42灰度直方圖 title('42灰度直方圖');
(2)histeq函數
功能:通過直方圖均衡化來增加灰度圖像對比度,使得圖像更加清晰(通常用在醫學上更加有利于發現病變的位置)。
格式:J = histeq(I)
例4:將灰度圖進行直方圖均衡化,并觀察直方圖變化情況。
I = imread('lion.png'); J = rgb2gray(I); subplot(1,2,1) imshow(J); %顯示灰度圖 subplot(1,2,2) Q = histeq(J); imshow(Q); %顯示灰度圖均衡化 I = imread('lion.png'); J = rgb2gray(I); subplot(2,2,1) imshow(J); %顯示灰度圖 title('原圖'); subplot(2,2,2) imhist(J); %顯示灰度直方圖 title('原圖直方圖'); subplot(2,2,3) Q = histeq(J); imshow(Q); %顯示灰度圖均衡化 title('均衡化圖'); subplot(2,2,4) imhist(Q); %顯示直方圖均衡化后的灰度直方圖 title('均衡化后直方圖');
(3)imadjust函數
功能:灰度圖像的灰度轉換
格式:J = imadjust(I)
g=imadjust(f,[low-in high-in],[low_ out high out])
輸入灰度low_ in~ high in ,輸出灰度low out ~ high_ out;
輸入灰度小于low in,則輸出灰度為low_ out;
輸入灰度大于high_ in, 則輸出灰度為high_ out;
將low_ in 至high_ in間 值映射到low out至high_ out間值。
4、圖像數據類型變換:im2uint8 函數、im2uint16函數、im2double函數
圖像類型與數據類型間的轉換
● im2uint8 :將輸入中所有<0轉換為0,所有> 1轉換為255,其他的乘以255
● im2uint16 :將輸入中所有<0轉換為0,所有> 1轉換為65535
● im2double :將輸入轉換為double類。
若輸入是uint8、uintl 6或logical則轉換為[0,1 ]間的類
若輸入是double,則返回與輸入相等的矩陣
總結
以上是生活随笔為你收集整理的9.3 图像变换(尺寸变换、旋转变换、灰度变换和数据类型变换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9.2 图像类型(灰度图像、彩色图像、二
- 下一篇: 第一节 Image Processing