实验一 MATLAB数字图像处理基本操作
實(shí)驗(yàn)內(nèi)容
1、讀入一幅RGB圖像(sunset.jpg),分別轉(zhuǎn)換為灰度圖像和二值圖像,并在同一個(gè)窗口內(nèi)分成三個(gè)子窗口來(lái)分別顯示這三幅圖像,注上文字標(biāo)題,即“原圖像”、“灰度圖像”、“二值圖像”。
?
a = imread("L:\圖像處理\實(shí)驗(yàn)文件\sunset.jpg");
i = rgb2gray(a);
I = im2bw(a,0.5);
subplot(3,1,1);imshow(a);title('原圖像');
subplot(3,1,2);imshow(i);title('灰度圖像');
subplot(3,1,3);imshow(I);title('二值圖像');
2、說(shuō)明以下程序的顯示結(jié)果為何是一幅幾乎全黑的圖像。
clear; close all;
myi=zeros(20,20);
myi(2:2:18,2:2:18)=1;
myi=uint8(myi);
figure, imshow(myi,'notruesize');
由程序myi=uint8 (myi) ;可知此程序編寫(xiě)的圖像在計(jì)算機(jī)中采用的是8位存儲(chǔ),即灰度
值為0^255,其中0為黑,255為白,中間值為由黑向白過(guò)度的值。而程序myi=zeros(20,20);
構(gòu)造了一個(gè)20行20列的0值矩陣,程序myi (2:2:18, 2:2:18)=1;將1賦值給矩陣的2, 4,
6,8,10,12,14,16,18行和2,4,6,8,10,12,14,16,18列,即這些位置的值為
1。因?yàn)?, 1都在人眼識(shí)別的黑色范圍內(nèi),固圖像是全黑的
?
3、閱讀分析下列程序,對(duì)每條語(yǔ)句給出注釋,運(yùn)行并解釋最終執(zhí)行結(jié)果;若將for循環(huán)改為方框中的程序,有何不同?
clear all;close all;
I=imread('d:\lena512.jpg');導(dǎo)入圖像
[height,width]=size(I); 將height,width賦值為該圖像的參數(shù)值
figure;?? 控制畫(huà)圖的窗口
subplot(2,3,1); subplot(2,3,1)是指一個(gè)2行3列的圖中從左到右從上到下的第一個(gè)位置。
imshow(I);? 展示i圖像
title('原圖像');? 標(biāo)題
L=1;?? 定義L
for m=1:5??? 循環(huán)m的值,生成五幅圖像
??? L=2*L; ?L等于L*2
??? quartimage=zeros(ceil(height/L),ceil(width/L));
zeros是生成全零的矩陣函數(shù)M*N,ceil函數(shù)將數(shù)值
取整
??? k=1;n=1;
??? for i=1:L:height 進(jìn)行循環(huán)
???????? for j=1:L:width
???????????? quartimage(k,n)=I(i,j); 將矩陣內(nèi)的值進(jìn)行修改
???????????? n=n+1;? n值加一
???????? end
???????? k=k+1;n=1;
??? end
??? subplot(2,3,m+1); ?subplot(2,3,1)是指一個(gè)2行3列的圖中從左到右從上到下的第一個(gè)位置。
??? imshow(uint8(quartimage)); 展示uint8格式的quatimage圖像
end
|
因?yàn)槭褂?/span>for m=1:5? ,所以會(huì)循環(huán)5次循環(huán)內(nèi)的條件,5次循環(huán)修改矩陣內(nèi)的值,并展示圖像,加上初試圖像,所以共有6幅圖像。
若改成框內(nèi)程序,直接修改原圖像的值,然后輸出圖像。
5、改變灰度圖像的灰度分辨率(256顏色-128顏色-64顏色-32顏色-16顏色-8顏色-4顏色-2顏色),給出實(shí)驗(yàn)結(jié)果;圖像大小不變的情況下,仿真改變圖像的空間分辨率(變?yōu)樵瓉?lái)的1/4(例如原圖像(1,1);(1,2);(2,1);(2,2)四個(gè)像素值設(shè)成相同的值);1/16),給出實(shí)驗(yàn)結(jié)果。
分辨率變換:
close all;clear all;clc;
%通過(guò)imadjust()函數(shù)調(diào)整灰度圖像的灰度范圍
I=imread("L:\圖像處理\實(shí)驗(yàn)文件\orangutan.tif");??
for i=1:7
??? J=I(1:2^i:end,1:2^i:end);
??? figure;
??? subplot(2,1,1);imshow(I);title('原圖')
??? subplot(2,1,2);imshow(J);title('8bits 變換');
end
?
?
?
不改變大小改變空間分辨率
clc;close all;
image = imread("L:\圖像處理\實(shí)驗(yàn)文件\orangutan.tif");?? %代表要處理的圖像
mysize = size(image);
%把圖像轉(zhuǎn)換成灰度圖
if numel(mysize) > 2
??? image = rgb2gray(image);
end
r_e = mysize(1);
c_e = mysize(2);
subplot(2,1,1); imshow(image,[]); title('Input Image');
temp1 = imresize(image,0.25); %表示把圖像縮小到原來(lái)的1/4,但同時(shí)圖像矩陣也變成了原來(lái)的1/4
[r_t2,c_t2] = size(temp1);
temp2 = zeros(r_e,c_e);
temp2(round(r_e/2)-floor(r_t2/2) : round(r_e/2)+ceil(r_t2/2)-1, round(c_e/2)-floor(c_t2/2) : round(c_e/2)+ceil(c_t2/2)-1) = temp1;%固定寫(xiě)法,具體了解matlab,調(diào)整大小
ss = temp2;
subplot(2,1,2); imshow(ss,[]); title('Minification');
總結(jié)
以上是生活随笔為你收集整理的实验一 MATLAB数字图像处理基本操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 全英文文献翻译 | 遥感技术在绘制中国与
- 下一篇: 天堂2单机版服务器时间修改,L2Jser