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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python直方图均衡化代码_基于matlab的直方图均衡化代码

發布時間:2024/10/8 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python直方图均衡化代码_基于matlab的直方图均衡化代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于matlab的直方圖均衡化代碼

2007-04-15 20:15

clear all

%一,圖像的預處理,讀入彩***像將其灰度化

PS=imread('1.jpg'); ? ? ? ? ? ? ? ? %讀入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中相應位置

end

figure,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

end

end

S2=round((S1*256)+0.5); ? ? ? ? ? ? ? ? ? ? ? ? ?%將Sk歸到相近級的灰度

for i=1:256

GPeq(i)=sum(GP(find(S2==i))); ? ? ? ? ? %計算現有每個灰度級出現的概率

end

figure,bar(0:255,GPeq,'b') ? ? ? ? ? ? ? ? ?%顯示均衡化后的直方圖

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

xlabel('灰度值')

ylabel('出現概率')

%四,圖像均衡化

PA=PS;

for i=0:255

PA(find(PS==i))=S2(i+1); ? ? ? ? ? ? ? ?%將各個像素歸一化后的灰度值賦給這個像素

end

figure,imshow(PA) ? ? ? ? ? ? ? ? ? ? ? ? ? %顯示均衡化后的圖像

title('均衡化后圖像')

imwrite(PA,'PicEqual.bmp');

用imadjust函數

imadjust:調整圖像的強度值或顏色用法形式:

J = imadjust(I)

J = imadjust(I,[low_in; high_in],[low_out; high_out])

J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)

newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)

RGB2 = imadjust(RGB1,...)

用法說明:

J = imadjust(I)將灰度圖像I中的亮度值映射到J中的新值并使1%的數據是在低高強度和飽和,這增加了輸出圖像J的對比度值;

此用法相當于imadjust(I,stretchlim(I)).

J = imadjust(I,[low_in; high_in],[low_out; high_out]) ? 將圖像I中的亮度值映射到J中的新值,即將low_in至hige_in之間的值映射到low_out至high_out之間的值。low_in以下與high_in以上的值被剪切掉了,也就是說,low_in以下的值映射到low_out,high_in以上的值映射到high_out。它們都可以使用空的矩陣[],默認值是[0 1]。

J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma) 將圖像I中的亮度值映射到J中的新值,其中gamma指定描述值I和值J關系的曲線形狀。如果gamma小于1,此映射偏重更高數值(明亮)輸出,如果gamma大于1,此映射偏重更低數值(灰暗)輸出,如果省略此參數,默認為1(線性映射).

newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)調整索引***像的調色板map。如果low_in, high_in, low_out, high_out和gamma都是標量,那么對r,g,b分量同時都做此映射。對于每個顏色分量都有唯一的映射,當low_in和high_in同時為1*3向量或者low_out 和 high_out 同時為1*3向量或者gamma為1*3向量時。調整后的顏色矩陣newmap 和map有相同的大小。

RGB2 = imadjust(RGB1,...) 對RGB圖像RGB1的紅、綠、藍調色板分別進行調整。隨著顏色矩陣的調整,每一個調色板都有唯一的映射值。

注意:如果high_out < low_out, 輸出圖像是顛倒的,像攝像底片.

舉例:

調整低對比度灰度圖像:

I = imread('pout.tif');

J = imadjust(I);

imshow(I), figure, imshow(J)

調整灰度圖像,指定范圍:

K = imadjust(I,[0.3 0.7],[]);figure, imshow(K)調整RGB圖像

RGB1 = imread('football.jpg');RGB2 = imadjust(RGB1,[.2 .3 0; .6 .7 1],[]);imshow(RGB1), figure, imshow(RGB2)

總結

以上是生活随笔為你收集整理的python直方图均衡化代码_基于matlab的直方图均衡化代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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