1樓:背影無忌
你先把要處理的影象載入到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);
希望能對你有幫助~
2樓:匿名使用者
en 背影無忌和熱心網友 已經回答了 gui具體問題 寡人也可幫忙
3樓:匿名使用者
補充樓上,你的意思是不是在一個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程式,要求: 輸入影象,輸出灰度直方圖。
4樓:匿名使用者
img=imread('c:\test.bmp');
p=rgb2gray(img);
h=imhist(p);
h1=h(1:2:256);
h2=1:2:256;
stem(h2,h1,'r--');
figure,imhist(p);
如何用matlab畫直方圖,輸入影象,出來直方圖,我沒學過matlab,請從使用到輸出儘量詳細o(∩_∩)o謝謝哎~
5樓:匿名使用者
讀入matlab自帶**kids.tif,並求出該**的沿r,g,b方向的直方圖。
6樓:匿名使用者
a=imread('f:\xx.jpg'); %讀入原影象檔案
i=rgb2gray(a);%彩色影象轉黑白,若原影象為黑白的,則不要這一步
j=histeq(i); %對原影象進行直方圖均衡化處理
imshow(i); %顯示原影象
title('原影象'); %給原影象加標題名
figure;imshow(j); %對原影象進行螢幕控制;顯示直方圖均衡化後的影象
title('直方圖均衡化後的影象'); %給直方圖均衡化後的影象加標題名
figure;subplot(121);%對直方圖均衡化後的影象進行螢幕控制;作一幅子圖作為並排
%兩幅圖的第1 幅圖
imhist(i,64); %將原影象直方圖顯示為64 級灰度
title('原影象直方圖'); %給原影象直方圖加標題名
subplot(122); %作第2 幅子圖
imhist(j,64); %將均衡化後影象的直方圖顯示為64 級灰度
title('均衡變換後的直方圖'); %給均衡化後影象直方圖加標題名
7樓:匿名使用者
直接img=imread("flower.jpg");
imhist(img);
求matlab程式能夠對50張**同時進行直方圖均衡化,中值濾波,二值化處理的程式 10
直方圖均衡化後的影象怎麼算 已知原影象,求直方圖均衡化後的影象。不要matlab程式。我只求明白原理就行 10
8樓:匿名使用者
如圖,是均衡前後的直方圖對比。
直方圖均衡化的意義在於:儘量讓每個亮度的點都一樣多,從而讓**的灰度細節儘量展現在人眼前,符合人眼檢視**的規律。
所以舊圖的直方圖並不平坦,做完直方圖均衡化以後,直方圖就會趨向平坦。
就拿上面2張直方圖舉例:
假設一張**的的亮度最低是0,最高是255(我就不說灰度了)
1。假設**是一張m*m畫素大小的**
2。轉換以後,假設,舊圖亮度在0-10之間的點數,等於新圖0-30之間的點數(因為舊圖很多點都擠在0-10之間,新圖要把這些點拉開)
3。又因為新圖是平坦的,所以我們很容易假設,亮度為30的點數,佔了總點數的1/256,也就是(m*m)/256
4。所以新圖中,0-30亮度之間的點數為30*(m*m)/256
5。根據上面2和4的關係列等式
30=(256/(m*m))*(亮度在0-10的點數總和)
6。把10換成p,30換成q,這樣對應任何舊圖中的p亮度,都可以計算出與之對應的新圖的亮度p。舊圖跟新圖的對映關係就出來了。
以上計算都是基於一個假設:(3)新圖的直方圖是平坦的。
matlab做直方圖均衡,下面的程式是區域性直方圖均衡,程式執行後的影象顯示如下圖,黑色部分灰度值均為1
寫一段**畫出一個影象的灰度直方圖(不能用matlab自帶的imhist函式),並作直方圖均衡化處理。
9樓:用著追她
1、先求出給定**的直方圖。
2、直方圖均衡化處理的公式,其中,v和u分別代表影象的高和寬。
3、為此,寫出**是:pic[i,j]=(255)/(u*v)*sum(c[:int(img[i,j])])。
4、均衡化的**如下。
5、畫出均衡化**的直方圖。
6、均衡化前後,**對比一下。做影象減法:pic-img。
10樓:匿名使用者
i=rgb2gray(i); %灰度化
%繪製直方圖
[m,n]=size(i);
gp=zeros(1,256);
for k=0:255
gp(k+1)=length(find(i==k))/(m*n); %計算每級灰度出現的概率,將其存入gp
end%三,直方圖均衡化
s1=zeros(1,256);
for i=1:256
for j=1:i
s1(i)=gp(j)+s1(i);
endend
s2=round((s1*256)+0.5); %將sk歸到相近級的灰度
for i=1:256
gpeq(i)=sum(gp(find(s2==i)));%計算現有每個灰度級出現的概率
endfigure;
subplot(221);bar(0:255,gp,'b');
title('原影象直方圖')
subplot(222);bar(0:255,gpeq,'b')title('均衡化後的直方圖')
x=i;
for i=0:255
x(find(i==i)) = s2(i+1);
endsubplot(223);imshow(i);
title('原影象') ;
subplot(224);imshow(x);
title('直方圖均衡後的影象');
11樓:匿名使用者
%% 灰度均衡化函式 自編
i = rgb2gray(imread('lena.png'));
matlab_i=histeq(i);
for j=1:1:256
num_j(j)=max(size(find(j-1==i)));
endfor op=1:1:size(i,1)
for pk=1:1:size(i,2)
gray=i(op,pk,1);
gray1=sum(num_j(1:gray+1))/(size(i,1)*size(i,2))*255;
custom_i(op,pk,1)=uint8(round(gray1));
endend
figure;
subplot(231),imshow(i);title('原圖灰度化');
subplot(234),imhist(i);
subplot(232),imshow(matlab_i);title('matlab灰度均衡');
subplot(235),imhist(matlab_i);
subplot(233),imshow(custom_i);title('自定義灰度均衡');
subplot(236),imhist(custom_i);
在matlab的gui中對影象進行直方圖均衡化,直方圖統計…2319
12樓:匿名使用者
你先把要處理的影象載入到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寫小程式,求用matlab寫一個小程式
內容來自使用者 夢見天亮11 num2str 變數值為字串 int2str 變整數為字串 str2num 變字串為數值 sprintf 變數值為格式控制下的字串 sscanf 變字串為格式控制下的數值 1.分段函式 for x pi 6 pi 10 6 pi y sin x if y 0 y 0 e...
求大俠幫我看下這個matlab程式,一直報錯
clear clci 1000 l 2 rr 0.01 x 0 0.1 2 k,j size x rg1 zeros 1,j rs1 zeros 1,j z zeros 1,j a zeros 1,j c zeros 1,j for i 1 j rg1 i 15 0 x i x i 0.8 63 6...
求程式啊,編寫程式,輸入五位整數,將它反向輸入,例如輸
反向function xx byval aa as string as string dim longth as integerdim i as integer longth len aa for i longth to 1 step 1xx xx mid aa,i,1 next end funct...