前言
看了很多人用matlab写的网络,竟然没有python代码。作为正在研究PCNN模型的一名学生,必须安排。
数学模型
打公式太麻烦,直接从截图啦,全连接模型,如下图1。
python代码
"""
Created on Sun Jun 6 16:48:38 2021
PCNN全连接
"""
import numpy as np
import matplotlib.pyplot as plt
import cv2
#将输入图片进行灰度化处理
def image_gray(f):
if f.ndim ==3 :
f_g = cv2.cvtColor(f,cv2.COLOR_BGR2GRAY)
else:
f_g = f
return f_g
#对图片进行边缘扩充
def edge_expande(f_gray):
f_S = cv2.copyMakeBorder(f_gray,1,1,1,1,cv2.BORDER_CONSTANT,value = 0)
return f_S
#对图片进行边缘裁剪
def edge_cut(f_gray):
f_c = f_gray[1:f_gray.shape[0]-1,1:f_gray.shape[1]-1]
return f_c
#人工设置参数
def parameter1(f_Sij):
f1 = np.exp(-0.05)
v1 = 0.2
v2 = 0.8
u1 = 0.1
f2 = 0.5
e1 = np.exp(-0.2)
e2 = np.max(f_Sij)+1
W = np.array([[0.01,0.01