PCNN is widely used in image fusion

1. There are two forms of coupling and uncoupling between pulse coupling neurons. , there is energy propagation between the coupled neurons, which produces synchronous pulse discharge, thus igniting the neurons with similar input at the same time.

3. Pulsed neural network — the third generation of artificial neural network.

4. PCNN is a single-layer feedback network composed of multiple PCNN neurons, so it is suitable for real-time image processing environment. Each neuron is composed of three parts: receiving part, modulation part and pulse generation part.

5. The number of PCNN neurons is the same as the number of pixels, and they are one-to-one corresponding. And the external stimulation of the neuron is equal to the gray value of the image or the gray value after normalization. When beta is equal to 0, there’s no coupling.

6. How PCNN works:

I. No coupling:

1. Assume that the feedback input of neurons is only external stimulus, Sij>0; When n=0, time t=0; Uij (0) = siJ-tij >0, then neuron (I.J) output is high level. The Tij here is the dynamic threshold.

2. When the high level is output, Tij rapidly increases to the set constant VT, VT>Sij, so that siJ-TIj <0, output low level.

3. After steps 1 and 2, neuron (I, J) outputs a pulse, which is called firing once. The neuron (I, j) is kept low during the threshold Tij decays from VT to Sij, then reignites when Uij>0, and so on.

Thus, the operation of neuron (I, J) is as follows: under the action of external stimulus Sij, it sends pulses at a frequency as follows:

. Therefore, the larger the gray value, the higher the ignition frequency. , neurons with different gray values input will also be ignited at different times, and neurons with the same input will be ignited at the same time.

4. After 1,2,3 steps, PCNN turns the image into a time-dependent ignition diagram.

Two, there is coupling:

When β/=0, whether the neuron ignites or not is influenced by the surrounding neurons.

1. Suppose there is a strong stimulation neuron (I, J), and its neighboring neuron (P, N) changes its stimulation SPQ from SPQ to (1+βLpq) SPQ at the ignition of the NTH iteration. [Lpq is one of the internal parameters of the neuron, connecting the input] that is, the stimulation of the neuron (P, Q) is increased.

2. If at this time, the updated SPQ is greater than the threshold T, it will cause the neuron (P,q) to be fired in advance at the NTH iteration. This process is called the neuron (P.Q) being captured by the neuron (I, J).

3. Thus, the greater the link strength β and the link input L are, the more neurons will fire synchronously with neuron (I, J). Then, the closer the pixel values are, the easier they are to capture.

4. Therefore, in the case of coupling, the coupled neurons are likely to collectively fire and send synchronous pulses: summarized as spatial close neighbors, neurons with similar intensity tend to fire at the same time.

5. At this time, the ignition diagram of PCNN is the ignition diagram that characteristically transforms the image into a timeline.

Characteristics of PCNN: 1. Each neuron that constitutes the PCNN system is dynamic

2. PCNN is a strong adaptive system without training.

Finally, let’s review the neuron structure of PCNN:





M,W are weights; F, L and T are the meanings of feedback, link and threshold respectively. V is the amplification factor, A is the constant, U is the internal behavior, Y is the output, and S is the external stimulus (pixel value).

Function [Edge,Numberofaera]= PCNN (X) Edge -- detected Numberofaera -- indicates the block region X=imread(' Lena.jpg ') that was activated at each iteration; figure(1); imshow(X); X=double(X); % enactment Weight=[0.07 0.1 0.07;0.1 0 0.1;0.07 0.1 0.07]; WeightLI2 = [- 0.03-0.03-0.03; 0.03 0-0.03, 0.03-0.03-0.03]; d=1/(1+sum(sum(WeightLI2))); Test weight % % % % % % % % % % % % WeightLI = [- 0.03-0.03-0.03; 0.03 0.5 0.03; - 0.03-0.03 to 0.03]; d1=1/(sum(sum(WeightLI))); % % % % % % % % % % % % % % % % % % Beta = 0.4; Yuzhi=245; % Decay coefficient Decay=0.3; [a,b]=size(X); V_T = 0.2; % Threshold=zeros(a,b); S=zeros(a+2,b+2); Y=zeros(a,b); % ignition frequency Firate= Zeros (a,b); n=1; imshow(Firate); % % % % % % % % % % % % son function % function Y = Jiabian [m, n] = size (X) (X); Y=zeros(m+2,n+2); for i=1:m+2 for j=1:n+2 if i==1&j~=1&j~=n+2 Y(i,j)=X(1,j-1); Elseif j = = 1 & I ~ = 1 & I ~ = m + 2 Y (I, j) = X (I - 1, 1); elseif i~=1&j==n+2&i~=m+2 Y(i,j)=X(i-1,n); elseif i==m+2&j~=1&j~=n+2 Y(i,j)=X(m,j-1); elseif i==1&j==1 Y(i,j)=X(i,j); elseif i==1&j==n+2 Y(i,j)=X(1,n); elseif i==(m+2)&j==1 Y(i,j)=X(m,1); elseif i==m+2&j==n+2 Y(i,j)=X(m,n); else Y(i,j)=X(i-1,j-1); End end end % % % % % % % % % % % % son function function Y = Bianhuan [m, n] = size (X) (X); Y=zeros(m+2,n+2); for i=1:m+2 for j=1:n+2 if i==1|j==1|i==m+2|j==n+2 Y(i,j)=0; else Y(i,j)=X(i-1,j-1); %%%%%% subfunction %%%%%% function Y=judge_edge(X,n) %X: the binary image output by PCNN after each iteration, how to accurately judge the boundary point is the key [a,b]=size(X); T=Jiabian(X); Y=zeros(a,b); W=zeros(a,b); for i=2:a+1 for j=2:b+1 if (T(i,j)==1)&((T(i-1,j)==0&T(i+1,j)==0)|(T(i,j-1)==0&T(i,j+1)==0)|(T(i-1,j-1)==0&T(i+1,j+1)==0)|(T(i+1,j-1)==0&T(i-1,j+1) ==0)) Y(i-1,j-1)=-n; end end endCopy the code