全局调整光照亮度
理論部分來自《全景圖像拼接關(guān)鍵技術(shù)研究》,這里講了一個(gè)全局調(diào)整光照亮度的辦法,很簡單易懂:
%AA、BB是兩幅原圖 左 右 %A、B是重疊區(qū)域?qū)?yīng)在兩幅圖的位置 A is the left and B is the right. %轉(zhuǎn)換了顏色空間 %下面是根據(jù)《全景圖像拼接關(guān)鍵技術(shù)研究》中的亮度調(diào)整辦法 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); %上面是根據(jù)之前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結(jié)果:
前兩幅是原圖 曝光差異大 ?后面這幅是對(duì)第二幅圖調(diào)整亮度的結(jié)果圖 ????這樣就行了 ?效果還不錯(cuò)!
即:
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?
?
總結(jié)
- 上一篇: SpringBoot2.0 基础案例(0
- 下一篇: 图文说明如何使用T4在VS2008里生成