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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

多频段图像融合

發布時間:2025/7/25 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多频段图像融合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多頻段圖像融合

from:http://blog.csdn.net/smallflyingpig/article/details/61200497

概述

圖像拼接一般包括warp(映射), compensation(光照補償)和blend(融合)三部分。
warp部分主要取決于相機參數估計的準確性,光照補償主要用于解決不同圖像曝光不同所帶來的輸出圖像的不同局部的光照差異,而blend則用于融合不同圖像之間的重疊部分,一般使用線性加權的方式來得到最終的輸出圖像。


多波段融合(multi blend)

多波段融合的基本思想是圖像可以分解為不同頻率的圖像的疊加(類似于傅里葉變換),在不同的頻率上,應該使用不同的權重來進行融合,在低頻部分應該使用波長較寬的加權信號(例如高斯核函數中sigma比較大),在高頻部分應該使用較窄的加權信號(例如高斯核函數的sigma比較小),其算法如下:

  • 計算輸入圖像的高斯金字塔。如果輸入圖像是A,B,則計算GA0,GA1,GA2,GA3,GB0,GB1,GB2,GB3,(如何計算高斯金字塔?)
  • 計算輸入圖像的拉普拉斯金字塔。記為LA0,LA1,LA2,LA3,LB0,LB1,LB2,LB3,(如何計算拉普拉斯金字塔?)
  • 將處于同一級的拉普拉斯金字塔進行融合。例如在拼接縫兩側使用簡單的線性融合。記輸出圖像為C,則這里得到LC0,LC1
  • 將高層的拉普拉斯金字塔依次擴展直至和LC0相同分辨率。我們記做LC00,LC11,LC22
  • 將4中得到的圖像依次疊加,則得到最終的輸出圖像C

  • 代碼實現

    使用matlab實現多波段算法如下:

    function C = multi_blend(A, B);%resize A,B,C to the same size A_size = size(A); B_size = size(B); C_size = [512,512]; if(A_size ~= C_size)A = imresize(A,C_size); end if(B_size ~= C_size)B = imresize(B,C_size); end%gaussian kernel kernel=fspecial('gaussian',[5 5],1);%obtain the Gauss Pyramid G_A0 = A; G_A1 = conv2(G_A0,kernel,'same'); G_A1 = G_A1(2:2:size(G_A1,1),2:2:size(G_A1,2)); G_A2 = conv2(G_A1,kernel,'same'); G_A2 = G_A2(2:2:size(G_A2,1),2:2:size(G_A2,2)); G_A3 = conv2(G_A2,kernel,'same'); G_A3 = G_A3(2:2:size(G_A3,1),2:2:size(G_A3,2)); G_A4 = conv2(G_A3,kernel,'same'); G_A4 = G_A4(2:2:size(G_A4,1),2:2:size(G_A4,2)); G_A5 = conv2(G_A4,kernel,'same'); G_A5 = G_A5(2:2:size(G_A5,1),2:2:size(G_A5,2));G_B0 = B; G_B1 = conv2(G_B0,kernel,'same'); G_B1 = G_B1(2:2:size(G_B1,1),2:2:size(G_B1,2)); G_B2 = conv2(G_B1,kernel,'same'); G_B2 = G_B2(2:2:size(G_B2,1),2:2:size(G_B2,2)); G_B3 = conv2(G_B2,kernel,'same'); G_B3 = G_B3(2:2:size(G_B3,1),2:2:size(G_B3,2)); G_B4 = conv2(G_B3,kernel,'same'); G_B4 = G_B4(2:2:size(G_B4,1),2:2:size(G_B4,2)); G_B5 = conv2(G_B4,kernel,'same'); G_B5 = G_B5(2:2:size(G_B5,1),2:2:size(G_B5,2));%get Laplacian Pyramid L_A0 = double(G_A0)-imresize(G_A1,size(G_A0)); L_A1 = double(G_A1)-imresize(G_A2,size(G_A1)); L_A2 = double(G_A2)-imresize(G_A3,size(G_A2)); L_A3 = double(G_A3)-imresize(G_A4,size(G_A3)); L_A4 = double(G_A4)-imresize(G_A5,size(G_A4)); L_A5 = double(G_A5);L_B0 = double(G_B0)-imresize(G_B1,size(G_B0)); L_B1 = double(G_B1)-imresize(G_B2,size(G_B1)); L_B2 = double(G_B2)-imresize(G_B3,size(G_B2)); L_B3 = double(G_B3)-imresize(G_B4,size(G_B3)); L_B4 = double(G_B4)-imresize(G_B5,size(G_B4)); L_B5 = double(G_B5);%construct the mask size0 = size(L_A0); mask0 = zeros(size0); mask0(:,1:size0(2)/2)=1; mask0(:,size0(2)/2-5:1:size0(2)/2+5)=repmat(1:-0.1:0,[size0(1) 1]); size1 = size(L_A1); mask1 = zeros(size1); mask1(:,1:size1(2)/2)=1; mask1(:,size1(2)/2-5:1:size1(2)/2+5)=repmat(1:-0.1:0,[size1(1) 1]); size2 = size(L_A2); mask2 = zeros(size2); mask2(:,1:size2(2)/2)=1; mask2(:,size2(2)/2-5:1:size2(2)/2+5)=repmat(1:-0.1:0,[size2(1) 1]); size3 = size(L_A3); mask3 = zeros(size3); mask3(:,1:size3(2)/2)=1; mask3(:,size3(2)/2-5:1:size3(2)/2+5)=repmat(1:-0.1:0,[size3(1) 1]); size4 = size(L_A4); mask4 = zeros(size4); mask4(:,1:size4(2)/2)=1; mask4(:,size4(2)/2-5:1:size4(2)/2+5)=repmat(1:-0.1:0,[size4(1) 1]); size5 = size(L_A5); mask5 = zeros(size5); mask5(:,1:size5(2)/2)=1; mask5(:,size5(2)/2-5:1:size5(2)/2+5)=repmat(1:-0.1:0,[size5(1) 1]);%obtain the output L_C0 = L_A0 .* mask0 + L_B0 .* (1-mask0); L_C1 = L_A1 .* mask1 + L_B1 .* (1-mask1); L_C2 = L_A2 .* mask2 + L_B2 .* (1-mask2); L_C3 = L_A3 .* mask3 + L_B3 .* (1-mask3); L_C4 = L_A4 .* mask4 + L_B4 .* (1-mask4); L_C5 = L_A5 .* mask5 + L_B5 .* (1-mask5); C = L_C0+imresize(L_C1,size0)+imresize(L_C2,size0)+imresize(L_C3,size0)+imresize(L_C4,size0)+imresize(L_C5,size0);figure(1); imshow(A); figure(2); imshow(B); figure(3); imshow(uint8(C));end

    實驗效果:

    輸入兩張光照差別很大的圖像:

    左半部分使用左圖,右半部分使用右圖,進行多波段融合得到如下:


    每個波段融合使用的掩膜如下(白色代表左圖成分,黑色代表右圖成分):





    其中前四幅圖為顯示方便做了偏移處理。

    參考

  • P. Burt and E. Adelson. A multiresolution spline with application to image mosaics. ACM Transactions on Graphics, 2(4):217–236, 1983.
  • Matthew Brown and David G. Lowe. Automatic Panoramic Image Stitching using Invariant Features.

  • 總結

    以上是生活随笔為你收集整理的多频段图像融合的全部內容,希望文章能夠幫你解決所遇到的問題。

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