這篇文章將為大家詳細講解有關python中PS圖像調(diào)整算法原理之亮度調(diào)整的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到新寧網(wǎng)站設計與新寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋新寧地區(qū)。亮度調(diào)整
非線性亮度調(diào)整:
對于R,G,B三個通道,每個通道增加相同的增量。
線性亮度調(diào)整:
利用HSL顏色空間,通過只對其L(亮度)部分調(diào)整,可達到圖像亮度的線性調(diào)整。但是,RGB和HSL顏色空間的轉(zhuǎn)換很繁瑣,一般還需要浮點數(shù)的運算,不僅增加了代碼的復雜度,更重要的是要逐點將RGB轉(zhuǎn)換為HSL,然后確定新的L值,再將HSL轉(zhuǎn)換為RGB,運行速度可想而知是很慢的。要想提高圖像亮度線性調(diào)整的速度,應該從三方面考慮,一是變浮點運算為整數(shù)運算,二是只提取HSL的L部分進行調(diào)整,三是采用匯編代碼,在Delphi中,當然是BASM。下面是按照這三方面考慮寫的圖像亮度線性調(diào)整代碼:
L := (Max(R, Max(G,B)) + Min(R, Min(G, B))) div 2;
L沒有采用通常的百分比表示,而是取值0 - 255,這樣就不必要采用浮點數(shù)運算了。
下面代碼主要完成2個功能,一是用以前的L值與RGB分別求出其HSL的HS部分,其公式用Pascal表示為:
if L > 128 then begin rHS := (R * 128 - (L - 128) * 256) div (256 - L); gHS := (G * 128 - (L - 128) * 256) div (256 - L); bHS := (B * 128 - (L - 128) * 256) div (256 - L); end else begin rHS := R * 128 div L; gHS := G * 128 div L; bHS := B * 128 div L; end;
二是用新的L值(老的L值加需要調(diào)整的亮度值(0 - 255))和上面求出的HS值計算出新的
RGB值,計算方法為:
newL := L + Value - 128; if newL > 0 then begin newR := rHS + (256 - rHS) * newL div 128; newG := gHS + (256 - gHS) * newL div 128; newB := bHS + (256 - bHS) * newL div 128; else begin newR := rHS + rHS * newL div 128; newG := gHS + gHS * newL div 128; newB := bHS + bHS * newL div 128; end;
如此,一個像素點的線性亮度調(diào)整就基本完成了
Program: clc; clear all; close all; Image=imread('4.jpg'); Image=double(Image); R=Image(:,:,1); G=Image(:,:,2); B=Image(:,:,3); %%%% 求出原始圖像亮度分量 I=(R+G+B)/3; %%% 利用原始圖像的亮度分量結(jié)合R,G,B求出HSL空間的H,S; rHS=R; gHS=G; bHS=B; [row, col]=size(I); for i=1:row for j=1:col if(I(i,j)>128) rHS(i,j)=(R(i,j)*128-(I(i,j)-128)*256)/(256-I(i,j)); gHS(i,j)=(G(i,j)*128-(I(i,j)-128)*256)/(256-I(i,j)); bHS(i,j)=(B(i,j)*128-(I(i,j)-128)*256)/(256-I(i,j)); else rHS(i,j)=R(i,j)*128/(I(i,j)); gHS(i,j)=G(i,j)*128/(I(i,j)); bHS(i,j)=B(i,j)*128/(I(i,j)); end end end %%%% 然后求出新的亮度值 %%%% Increment: 亮度的調(diào)整增量(-255,255) Increment=-100; I_out=I+Increment-128; %%%% 再利用新的亮度值結(jié)合H,S,求出新的R,G,B分量 R_new=R; G_new=G; B_new=B; for i=1:row for j=1:col if(I_out(i,j)>0) R_new(i,j)=rHS(i,j)+(256-rHS(i,j))*I_out(i,j)/128; G_new(i,j)=gHS(i,j)+(256-gHS(i,j))*I_out(i,j)/128; B_new(i,j)=bHS(i,j)+(256-bHS(i,j))*I_out(i,j)/128; else R_new(i,j)=rHS(i,j)+rHS(i,j)*I_out(i,j)/128; G_new(i,j)=gHS(i,j)+gHS(i,j)*I_out(i,j)/128; B_new(i,j)=bHS(i,j)+bHS(i,j)*I_out(i,j)/128; end end end Image_new(:,:,1)=R_new; Image_new(:,:,2)=G_new; Image_new(:,:,3)=B_new; imshow(Image/255); figure, imshow(Image_new/255);
關于“python中PS圖像調(diào)整算法原理之亮度調(diào)整的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
本文題目:python中PS圖像調(diào)整算法原理之亮度調(diào)整的示例分析-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://aaarwkj.com/article2/gjjoc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、響應式網(wǎng)站、網(wǎng)站改版、商城網(wǎng)站、App設計、關鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)