亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中PS圖像調整算法原理之亮度調整的示例分析

發布時間:2021-06-28 14:43:17 來源:億速云 閱讀:147 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python中PS圖像調整算法原理之亮度調整的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

亮度調整

非線性亮度調整:

對于R,G,B三個通道,每個通道增加相同的增量。

線性亮度調整:

利用HSL顏色空間,通過只對其L(亮度)部分調整,可達到圖像亮度的線性調整。但是,RGB和HSL顏色空間的轉換很繁瑣,一般還需要浮點數的運算,不僅增加了代碼的復雜度,更重要的是要逐點將RGB轉換為HSL,然后確定新的L值,再將HSL轉換為RGB,運行速度可想而知是很慢的。要想提高圖像亮度線性調整的速度,應該從三方面考慮,一是變浮點運算為整數運算,二是只提取HSL的L部分進行調整,三是采用匯編代碼,在Delphi中,當然是BASM。下面是按照這三方面考慮寫的圖像亮度線性調整代碼:

L := (Max(R, Max(G,B)) + Min(R, Min(G, B))) div 2;

L沒有采用通常的百分比表示,而是取值0 - 255,這樣就不必要采用浮點數運算了。

下面代碼主要完成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值加需要調整的亮度值(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;

如此,一個像素點的線性亮度調整就基本完成了

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;
%%% 利用原始圖像的亮度分量結合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: 亮度的調整增量(-255,255)
 Increment=-100;
 I_out=I+Increment-128;
%%%% 再利用新的亮度值結合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圖像調整算法原理之亮度調整的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屯门区| 黄龙县| 图木舒克市| 寿阳县| 北流市| 永善县| 湘潭县| 宝清县| 定兴县| 叶城县| 江门市| 乳山市| 资讯| 华蓥市| 娄烦县| 夹江县| 和龙市| 延安市| 泗阳县| 璧山县| 元谋县| 玛沁县| 酉阳| 神池县| 绥化市| 绥芬河市| 双鸭山市| 西乌珠穆沁旗| 黔西县| 东安县| 辉南县| 嫩江县| 永年县| 汨罗市| 乌拉特后旗| 霍城县| 云浮市| 盐山县| 巴南区| 东台市| 兴义市|