matlab如何實現矩陣影象的直方圖均衡化

2021-03-19 18:20:17 字數 4140 閱讀 7399

1樓:匿名使用者

基於matlab的直方圖均衡化**

2007-04-15 20:15

clear all

%一,影象的預處理,讀入彩色影象將其灰度化

讀入jpg彩色影象檔案

imshow(ps) %顯示出來

title('輸入的彩色jpg影象')

imwrite(rgb2gray(ps),'picsamplegray.bmp'); %將彩色**灰度化並儲存

ps=rgb2gray(ps); %灰度化後的資料存入陣列

%二,繪製直方圖

[m,n]=size(ps); %測量影象尺寸引數

gp=zeros(1,256); %預建立存放灰度出現概率的向量

for k=0:255

gp(k+1)=length(find(ps==k))/(m*n); %計算每級灰度出現的概率,將其存入gp中相應位置

endfigure,bar(0:255,gp,'g') %繪製直方圖

title('原影象直方圖')

xlabel('灰度值')

ylabel('出現概率')

%三,直方圖均衡化

s1=zeros(1,256);

for i=1:256

for j=1:i

s1(i)=gp(j)+s1(i); %計算sk

endend

s2=round((s1*256)+0.5); %將sk歸到相近級的灰度

for i=1:256

gpeq(i)=sum(gp(find(s2==i))); %計算現有每個灰度級出現的概率

endfigure,bar(0:255,gpeq,'b') %顯示均衡化後的直方圖

title('均衡化後的直方圖')

xlabel('灰度值')

ylabel('出現概率')

%四,影象均衡化

pa=ps;

for i=0:255

pa(find(ps==i))=s2(i+1); %將各個畫素歸一化後的灰度值賦給這個畫素

endfigure,imshow(pa) %顯示均衡化後的影象

title('均衡化後影象')

imwrite(pa,'picequal.bmp');

怎樣用matlab對一幅影象進行灰度直方圖均衡化處理

2樓:匿名使用者

i=imread('pout.tif'); %讀自帶的影象imshow(i);

figure,imhist(i);

[j,t]=histeq(i,64); %影象灰度擴充套件到0~255,但是隻有64個灰度級

figure,imshow(j);

figure,imhist(j);

figure,plot((0:255)/255,t); %轉移函式變換曲線

j=histeq(i,32);

figure,imshow(j); %影象灰度擴充套件到0~255,但只有32個灰度級

figure,imhist(j);

3樓:匿名使用者

i1=histeq(i0); %直方圖均衡化subplot(221), imshow(i0);

subplot(222), imhist(i0);

subplot(223), imshow(i1);

subplot(224), imhist(i1);

matlab裡直方圖均衡化用什麼函式?

4樓:與你最初

matlab直方

圖均衡化的函式只有一個histeq,它是用於影象處理的。histeq的作用是把「影象」的直方圖均衡化。

直方圖均衡化是影象處理領域中利用影象直方圖對對比度進行調整的方法。

這種方法通常用來增加許多影象的全域性對比度,尤其是當影象的有用資料的對比度相當接近的時候。通過這種方法,亮度可以更好地在直方圖上分佈。

這樣就可以用於增強區域性的對比度而不影響整體的對比度,直方圖均衡化通過有效地擴充套件常用的亮度來實現這種功能。

5樓:

你好,matlab直方圖均衡化的函式只有一個histeq,就是你說的那個。它是用於影象處理的。如果你的直方圖不是影象處理的直方圖,請給我短訊息,我可以把演算法給你。

histeq的作用是把「影象」的直方圖均衡化。

簡單的說,有些影象有太多的亮點或者有太多的暗點。histeq通過一個演算法,把亮度重新分配,讓人看得舒服自然。比如說原來的點都集中在暗處,1-25之間,histeq就可以把25亮度的點「拉」到255處,24「拉」到240處..

最後影象的細節都回呈現在你面前。

例子i = imread('pout.tif');

[j,t] = histeq(i);

figure,plot((0:255)/255,t);

在matlab的gui中對影象進行直方圖均衡化,直方圖統計…2319

6樓:匿名使用者

你先把要處理的影象載入到matlab的work資料夾裡面a=imread(『1.bmp』);%輸入真彩色影象b=rgb2gray(a);%轉化成灰度影象影象顯示

figure(1)

subplot(1,2,1);imshow(a);

subplot(1,2,2);imshow(b);

%顯示灰度影象與直方圖

figure(2)

subplot(1,2,1);imshow(b);

subplot(1,2,2);imhist(b);

%直方圖均衡化

c=histeq(b);

figure(3);

subplot(1,2,1);imshow(c);

subplot(1,2,2);imhist(c);

希望能對你有幫助~

求一matlab程式,要求: 輸入影象,輸出直方圖均衡化後的直方圖

7樓:背影無忌

你先把要處理的影象載入到matlab的work資料夾裡面a=imread(『1.bmp』); %輸入真彩色影象b=rgb2gray(a); %轉化成灰度影象影象顯示

figure(1)

subplot(1,2,1);imshow(a);

subplot(1,2,2);imshow(b);

%顯示灰度影象與直方圖

figure(2)

subplot(1,2,1);imshow(b);

subplot(1,2,2);imhist(b);

%直方圖均衡化

c=histeq(b);

figure(3);

subplot(1,2,1);imshow(c);

subplot(1,2,2);imhist(c);

希望能對你有幫助~

8樓:匿名使用者

en 背影無忌和熱心網友 已經回答了 gui具體問題 寡人也可幫忙

9樓:匿名使用者

補充樓上,你的意思是不是在一個figure中顯示clc,clear all

a=imread('mypic.jpg'); %輸入真彩色影象b=rgb2gray(a); %轉化成灰度影象%影象顯示

subplot(2,2,1);imshow(a);

subplot(2,2,2);imshow(b);

%顯示灰度影象與直方圖

subplot(2,2,3);imhist(b);

%直方圖均衡化

c=histeq(b);

subplot(2,2,4);imhist(c);

如何將matlab影象矩陣分塊並將分好的塊撒

a randi 100,100 100 100的原來始矩陣,也可以自 是你的影象矩陣 m 2 n 2 c mat2cell a,ones 100 m,1 m,ones 100 n,1 n 按照baim n的小塊進行分塊 輸出的c是元du胞結構,c是分塊後zhi第dao一行第一列的矩陣塊,其他同理。m...

matlab如何將讀取影象後的RGB矩陣變換為二維自定義矩陣

這個問題的核心在於怎樣把圖中的各畫素點與指定的四種 五種 顏色對應起來,但圖中的顏色遠不止5種 用hypersnap可以統計出,題主所貼出的影象包含了11234種顏色 猜測這樣的交通流圖應該是在某種軟體系統上根據資料生成的,而生成這樣的圖應該會採用某幾種固定的顏色,題主如果是通過軟體截圖的方式得到的...

matlab矩陣如何去掉引號,MATLAB字串輸出時如何去除單引號

使用disp輸出cell陣列,如果其元素為字串型別,本來就是要帶引號的。如果不想要引號,可以考慮使用迴圈配合fprintf進行輸出。matlab 字串輸出時如何去除單引號 1 先給定一個字串 zfc linux快速入門教程 矽片 1 矽片 2 先用區域性替換的方法 去掉字串裡面的雙引號 import...