日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

9.3 图像变换(尺寸变换、旋转变换、灰度变换和数据类型变换)

發布時間:2025/4/16 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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:圖像旋轉變換

I = imread('cat.png'); subplot(1,2,1); imshow(I); %顯示原圖 title('原圖1'); subplot(1,2,2); J = imrotate(I,30,'crop'); %crop是指旋轉圖像時,圖像底板大小保持不變 imshow(J); %顯示旋轉30°的圖像 title('原圖旋轉30°');

I = imread('cat.png'); for i=1:10J = imrotate(I,36*i,'crop'); %將原圖旋轉10次,每次旋轉讀書為36的倍數subplot(2,5,i);imshow(J); end

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間值。

I = imread('lion.png'); J = rgb2gray(I); subplot(1,3,1) imshow(J); %顯示灰度圖 %title('原圖'); subplot(1,3,2) J1 = imadjust(J,[0 1],[1 0]); %將輸入灰度0轉化為輸出灰度1,將輸入灰度1轉化為輸出灰度0 imshow(J1); subplot(1,3,3) J2 = imadjust(J,[0.5 0.75],[0 1]); %將輸入灰度0.5轉化為輸出灰度0,將輸入灰度0.75轉化為輸出灰度1 imshow(J2);

4、圖像數據類型變換:im2uint8 函數、im2uint16函數、im2double函數

圖像類型與數據類型間的轉換
● im2uint8 :將輸入中所有<0轉換為0,所有> 1轉換為255,其他的乘以255
● im2uint16 :將輸入中所有<0轉換為0,所有> 1轉換為65535
● im2double :將輸入轉換為double類。
若輸入是uint8、uintl 6或logical則轉換為[0,1 ]間的類
若輸入是double,則返回與輸入相等的矩陣

I = imread('cat.png'); I8 = im2uint8(I); %轉化為8位無符號數據類型,數據范圍在[0 255]之間 I16 = im2uint16(I); %轉化為16位無符號數據類型,數據范圍在[0 65535]之間 Id = im2double(I); %轉化為雙精度數據類型,數據范圍在[0 1]之間

總結

以上是生活随笔為你收集整理的9.3 图像变换(尺寸变换、旋转变换、灰度变换和数据类型变换)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。