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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【MATLAB图像融合】[15]一个自适应PCNN的DEMO详解

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MATLAB图像融合】[15]一个自适应PCNN的DEMO详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

出處: Qu Xiao-Bo <qxb_xmu [at] yahoo.com.cn> Aug.28,2008
先上代碼,依然來自屈小波教授:

A=imread('1.jpg'); B=imread('2.jpg'); im=imread('1.jpg'); im1=imread('2.jpg'); im=double(im); im1=double(im1); [p,q]=size(im); link_arrange=5; np=20;F_NA=Normalized(im); F_NB=Normalized(im1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% alpha_L=1; alpha_Theta=2.0; alpha_F=0.1; beta=0; vF=0.5; vL=0.2; vTheta=20; L1=zeros(p,q); L2=zeros(p,q); U1=zeros(p,q); U2=zeros(p,q); Y1=zeros(p,q); Y2=zeros(p,q); F1=Y1; F2=Y1; Y0=zeros(p,q); Y01=zeros(p,q); R=zeros(p,q); Theta1=zeros(p,q); Theta2=zeros(p,q);% Compute the linking strength. center_x=round(link_arrange/2); center_y=round(link_arrange/2); W=zeros(link_arrange,link_arrange); for i=1:link_arrangefor j=1:link_arrangeif (i==center_x)&&(j==center_y)W(i,j)=0;elseW(i,j)=1./sqrt((i-center_x).^2+(j-center_y).^2);endend end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% I1=F_NA; I2=F_NB; for n=1:np[a,b]=size(W);for i=1:pfor j=1:qfor c=1:afor d=1:bbeta=beta+[im(c,d)-im(c+1,d)].^2+[im(c,d)-im(c,d+1)].^2;endendK1(i,j)=conv2(Y1(i,j),W,'same');K2(i,j)=conv2(Y2(i,j),W,'same');F1(i,j)=exp(-alpha_F)*F1(i,j)+vF*K1(i,j)+I1(i,j);F2(i,j)=exp(-alpha_F)*F2(i,j)+vF*K2(i,j)+I2(i,j);L1(i,j)=exp(-alpha_L)*L1(i,j)+vL*K1(i,j);L2(i,j)=exp(-alpha_L)*L2(i,j)+vL*K2(i,j);Theta1(i,j)=exp(-alpha_Theta)*Theta1(i,j)+vTheta*Y1(i,j);Theta2(i,j)=exp(-alpha_Theta)*Theta2(i,j)+vTheta*Y2(i,j);U1(i,j)=F1(i,j).*(1+beta*L1(i,j));U2(i,j)=F2(i,j).*(1+beta*L2(i,j));Y1(i,j)=im2double(U1(i,j)>Theta1(i,j));Y2(i,j)=im2double(U2(i,j)>Theta2(i,j));Y0(i,j)=Y0(i,j)+Y1(i,j);Y01(i,j)=Y01(i,j)+Y2(i,j);endendY0=medfilt2(Y0,[3,3]);Y01=medfilt2(Y01,[3,3]);for i=1:pfor j=1:qif abs(Y0(i,j)-Y01(i,j))<=0.015R(i,j)=(I1(i,j)+I2(i,j))/2;end if abs(Y0(i,j)-Y01(i,j))>0.015 &&Y0(i,j)>Y01(i,j)R(i,j)=I1(i,j);endif abs(Y0(i,j)-Y01(i,j))>0.015 && Y0(i,j)<Y01(i,j)R(i,j)=I2(i,j);end endend end subplot 131;imshow(A); subplot 132;imshow(B); subplot 133;imshow(R); function [normalized_matrix,cmin,cmax]=Normalized(matrix) input_matrix=abs(matrix); Max_input=max(input_matrix(:)); Min_input=min(input_matrix(:)); min_matrix=ones(size(input_matrix)).*Min_input; normalized_matrix=(input_matrix-min_matrix)./(Max_input-Min_input+eps); cmin=Min_input; cmax=Max_input; end;

對本代碼進行以下解釋:
①、本代碼基于PCNN,而不是S-PCNN。
②、PCNN的基本原理在前章有解釋。
③、算法的基本流程是歸一化;定義PCNN的如下參數:W,LINK RANGE,TIME,aF,vF,aL,vL,aT,vT;定義EOL(energy of laplacian)作為β的自適應值;通過閾值對點火圖進行融合得到融合圖像。
④、歸一化函數算法:選出一個最大值和最小值;讓矩陣中所有的數值都減去最小值;得到的新矩陣再除以(最大值-最小值)就得到歸一化結果;過程中取絕對值計算。
⑤、權值(W)和鏈接域(LINK RANGE):通常取奇數,經測試,在W=3時算法卻莫名其妙無法計算結果,檢查無果,W=5,6,7等時都可正常運行。
⑥、需要注意,步驟③最終用點火圖完成融合,不是把點火圖融合在一起,而是根據點火圖的情況去相應地對源圖像像素進行融合操作,故PCNN圖像融合也屬于像素級的圖像融合。

總結

以上是生活随笔為你收集整理的【MATLAB图像融合】[15]一个自适应PCNN的DEMO详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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