基於MATLAB的影象處理演算法綜合應用演算法開發

2022-10-17 02:39:07 字數 4093 閱讀 5357

(一)實驗型別: 研究

(二)實驗目的:

1、培養應用matlab開發影象處理演算法的能力。

2、掌握開發綜合性影象演算法的技能與方法。

(三)實驗內容:

彈孔中心位置的影象處理方法。

(四)實驗要求:

開發出演算法及程式**,並獲得處理結果。

其基本原理是,先對影象進行邊緣檢測,後應用數學形態學的方法將邊緣連線在一起,後填充,應用數學形態學方法對分割彈孔圓形化,再進行邊緣檢測獲得彈孔邊緣,最後應用最小二乘法擬合圓心的方法,獲得彈孔中心。

實驗過程:

開啟matlab軟體,在open中選擇我們在軟體中設計好的演算法程式。

clear;

close all;

i0=imread('');

%i0=rgb2gray(i3);

[x,y,z]=size(i0);

%i6=im2bw(i3,0.4);

i4=edge(i0,'canny',0.1);

bw=strel('disk',1);

bw2=strel('disk',1);

i5=imdilate(i4,bw);

i6=imfill(i5,'holes');

i7=imdilate(i6,bw2);

bw3=strel('disk',3);

i8=imerode(i7,bw3);

i81=imfill(i8,'holes');

bw4=strel('disk',7);

i9=imerode(i81,bw4);

bw5=strel('disk',7);

i10=imopen(i9,bw5);

figure(1),imshow(i0);

figure(2),imshow(i4);

figure(3),imshow(i5);

figure(4),imshow(i6);

figure(5),imshow(i7);

figure(6),imshow(i8);

figure(7),imshow(i9);

figure(8),imshow(i10);

hold on;

boundaries = bwboundaries(i5);

[mun1,mun2]=size(boundaries);

for k=1:mun1

b = boundaries;

plot(b(:,2),b(:,1),'g','linewidth',3);

hold on;

bt1=b(:,1);

bt2=b(:,2);

[cir_x,cir_y,radis]=circlefitting(bt1,bt2);

plot(cir_y,cir_x,'r*','linewidth',3);

end然後選擇run。軟體則會根據我們編輯好的演算法對目標**進行彈孔輪廓提取,顯示出計算好的**如下:

(一)實驗型別: 研究

(二)實驗目的:

1、培養應用matlab開發影象處理演算法的能力。

2、掌握開發綜合性影象演算法的技能與方法。

(三)實驗內容:

色彩目標提取影象處理應用例項。

(四)實驗要求:

開發出演算法及程式**,並獲得處理結果。

應用理論:色彩變換

色彩變換原理,減色合成法:人眼看到物體的顏色是由於物體反**物體顏色相同的光。光白光(三原色的混合體)照到物體上時,物體只把它自己的顏色對應的光線反射出來,其它的色光被吸收,即從白光中「減」去物體沒有的顏色。

這種情況叫減色合成。品紅會吸收綠色,反射紅色光和藍色光。黃色會吸收白光中的藍色,反射紅色光和綠色光。

青色會吸收白光中的紅色,反射綠色和藍色。(色度在附近時為紅色,附近為綠色,附近為蘭色)

將原圖進行如下編輯程式進行運算我們可得到色彩變換結果

程式如下:

clear;%清除工作區內所有的變數

close all;%關閉所有的figure

%global i j y c1 c2 sat hue;

iinp=imread('');

[ysize,xsize,zsize]=size(iinp);

m_inty=0.5;

m_hue=200;

m_sat=1;

for j=1:ysize

for i=1:xsize

image_r(j,i)=iinp(j,i,1);

image_g(j,i)=iinp(j,i,2);

image_b(j,i)=iinp(j,i,3);

y(j,i)=double(0.0);

c1(j,i)=double(0.0);

c2(j,i)=double(0.0);

sat(j,i)=double(0.0);

hue(j,i)=double(0.0);

endend%由rgb變成色差訊號

[y,c1,c2]=rgb_to_yc(image_r,image_g,image_b,xsize,ysize);

%由色差訊號計算飽和度和色相

[sat,hue]=c_to_sh(c1,c2,xsize,ysize);

%亮度飽合度色調的調整

[out_y,out_sat,out_hue]=change_ysh(y,sat,hue,m_inty,m_sat,m_hue,xsize,ysize);

%由色調和飽合度計算色差訊號

[m_c1,m_c2]=sh_to_c(out_sat,out_hue,xsize,ysize);

%由亮度色差變換rgb訊號

[out_r,out_g,out_b]=yc_to_rgb(out_y,m_c1,m_c2,xsize,ysize);

for j=1:ysize

for i=1:xsize

iout(j,i,1)=out_r(j,i);

iout(j,i,2)=out_g(j,i);

iout(j,i,3)=out_b(j,i);

endendfigure(1),imshow(iinp);

figure(2),imshow(image_r);

figure(3),imshow(image_g);

figure(4),imshow(image_b);

figure(5),imshow(iout);

執行程式後得到如下**:

實驗結果分析:

基於yuv彩色系統的灰度影象著色方法--用彩色參考圖著色

假定相鄰的畫素之間如果有相似的y 值,那麼就會有相似的u 和v 值;視覺上對u 、v 變化的不敏感性,同時假定同類色中顏色的區別主要是y 值作用的結果。

基本原則:1)彩色影象中u、v 值顯著改變的臨界線, 也是y 值顯著改變的臨界線;

2)同類色中相近顏色的區別在視覺上主要是y 值作用的結果

例項2、彩色目標提取,(原理與色彩變換相同,應用影象畫素的點的色度進行判別,色度在附近時為紅色,附近為蘭色,附近為綠色)

我們根據變換遠離編輯出如下程式:

clear;%清除工作區內所有的變數

close all;%關閉所有的figure

%global i j y c1 c2 sat hue;

xsize=640;

ysize=480;

m_inty=1;

m_hue=0;

m_sat=2;

y(1:xsize,1:ysize)=double(0.0);

c1(1:xsize,1:ysize)=double(0.0);

c2(1:xsize,1:ysize)=double(0.0);

sat(1:xsize,1:ysize)=double(0.0);

hue(1:xsize,1:ysize)=double(0.0);

%path1= sprintf('red%',k);

iinp=imread('');

image_r(:,:)=iinp(:,:,3);

image_g(:,:)=iinp(:,:,2);

image_b(:,:)=iinp(:,:,1);

%由rgb變成色差訊號

[y,c1,c2]=rgb_to_yc(image_r,image_g,image_b,xsize,ysize);

基於MATLAB的影象平滑演算法實現及應用

1.3 影象雜訊 一幅影象在獲取和傳輸等過程中,會受到各種各樣雜訊的干擾,其主要 有三 一為在光電 電磁轉換過程中引入的人為雜訊 二為大氣層電 磁 暴 閃電 電壓 浪湧等引起的強脈衝性衝激雜訊的干擾 三為自然起伏性雜訊,由物理量的不連續性或粒子性所引起,這類雜訊又可分成熱雜訊 散粒雜訊等。一般在影象...

MATLAB影象處理相關函式

一 通用函式 colorbar 顯示彩色條 語法 colorbar colorbar vert colorbar horiz colorbar h h colorbar colorbar peer axes handle getimage 從座標軸取得影象資料 語法 a getimage h x,y...

如何處理算理和演算法的關係

算理是演算法的基礎,是演算法的思維方式。演算法是算理的抽象,是對算理的一種表達形式或書寫格式,是計算的方法 程式,我認為片段中老師是這樣處理算理和演算法的關係的 1 用多 出示情境圖讓學生從圖中找出資訊和問題,並列出算式23x12,讓學生說算式的意義。2 估算出現三種情況20x10約等於200 23...