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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全局调整光照亮度

發布時間:2025/3/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全局调整光照亮度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

理論部分來自《全景圖像拼接關鍵技術研究》,這里講了一個全局調整光照亮度的辦法,很簡單易懂:

%AA、BB是兩幅原圖 左 右 %A、B是重疊區域對應在兩幅圖的位置 A is the left and B is the right. %轉換了顏色空間 %下面是根據《全景圖像拼接關鍵技術研究》中的亮度調整辦法 AA=imread('F:\fisheye\others1.jpg'); BB=imread('F:\fisheye\others2.jpg'); [H,W,k]=size(AA); rdata1=-76; L=W+1+rdata1; R=W; n=R-L+1; for i=1:Hfor j=L:Rjj=j-L+1;A(i,jj,1)=AA(i,j,1);A(i,jj,2)=AA(i,j,2);A(i,jj,3)=AA(i,j,3);B(i,jj,1)=BB(i,jj,1);B(i,jj,2)=BB(i,jj,2);B(i,jj,3)=BB(i,jj,3);end end A=uint8(A); B=uint8(B); %上面是根據之前H矩陣找到的兩幅圖的重疊部分A、B [mb,nb,kb]=size(B); I2=zeros(mb,nb); v2=0; for i=1:mbfor j=1:nbI2(i,j)=0.59*B(i,j,1)+0.11*B(i,j,2)+0.3*B(i,j,3);v2=v2+I2(i,j);end end [ma,na,ka]=size(A); I1=zeros(ma,na); v1=0; for i=1:mafor j=1:naI1(i,j)=0.59*A(i,j,1)+0.11*A(i,j,2)+0.3*A(i,j,3);v1=v1+I1(i,j);end end k=v1/v2; [m,n,kk]=size(BB); for i=1:mfor j=1:nBB(i,j,1)=k*BB(i,j,1);BB(i,j,2)=k*BB(i,j,2);BB(i,j,3)=k*BB(i,j,3);end end

結果:

前兩幅是原圖 曝光差異大 ?后面這幅是對第二幅圖調整亮度的結果圖 ????這樣就行了 ?效果還不錯!

即:

Mat rejust_light(Mat waittoberejustimg, Mat destinateimg){Mat waittoberejustgrayimg(waittoberejustimg.size(), CV_8UC1, Scalar(0));cvtColor(waittoberejustimg, waittoberejustgrayimg, CV_RGB2GRAY);Mat destinategrayimg(destinateimg.size(), CV_8UC1, Scalar(0));cvtColor(destinateimg, destinategrayimg, CV_BGR2GRAY);int waitimgsum = 0, destinateimgsum = 0;for (int i = 0; i < waittoberejustgrayimg.rows;i++){uchar* data = waittoberejustgrayimg.ptr<uchar>(i);for (int j = 0; j < waittoberejustgrayimg.cols;j++){waitimgsum += (int)data[j];}}for (int i = 0; i < destinategrayimg.rows; i++){uchar* data = destinategrayimg.ptr<uchar>(i);for (int j = 0; j < destinategrayimg.cols; j++){destinateimgsum += (int)data[j];}}float ratio = (float)destinateimgsum / waitimgsum;for (int i = 0; i < waittoberejustimg.rows; i++){for (int j = 0; j < waittoberejustimg.cols * 3; j++){waittoberejustimg.ptr<uchar>(i)[j] = ratio*waittoberejustimg.ptr<uchar>(i)[j];}}return waittoberejustimg; }


---------------------?
原文:https://blog.csdn.net/wd1603926823/article/details/49849317?
?

總結

以上是生活随笔為你收集整理的全局调整光照亮度的全部內容,希望文章能夠幫你解決所遇到的問題。

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