十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
写了一个输入和卷积核dim=2是一样的(都是3)的卷积函数,可以试试多加一个for循环变成三维卷积
为福清等地区用户提供了全套网页设计制作服务,及福清网站建设行业解决方案。主营业务为网站建设、成都网站设计、福清网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
def conv3D(image, filter):
'''
三维卷积
:param image: 输入,shape为 [h,w,c], c=3
:param filter: 卷积核,shape为 [x,y,z], z=3
:return:
'''
h, w, c = image.shape
x, y, z = filter.shape
height_new = h - x + 1 # 输出 h
width_new = w - y + 1 # 输出 w
image_new = np.zeros((height_new, width_new), dtype=np.float)
for i in range(height_new):
for j in range(width_new):
r = np.sum(image[i:i+x, j:j+x, 0] * filter[:,:,0])
g = np.sum(image[i:i+y, j:j+y, 1] * filter[:,:,1])
b = np.sum(image[i:i+z, j:j+z, 2] * filter[:,:,2])
image_new[i, j] = np.sum([r,g,b])
image_new = image_new.clip(0, 255)
image_new = np.rint(image_new).astype('uint8')
return image_new
上节详细介绍了连续可积函数的卷积运算,本节介绍在数字图像处理中,常用的离散卷积
对于定义在整数域里面的两个函数f[n]和g[n],g[n]的长度为M,其卷积运算定义为:
通过上式可以看出, 离散卷积是:平移翻转相乘再求和 。跟连续卷积相比,把积分运算换成了相乘再求和。
我们明白离散卷积定义就好,在实际工程实现中,比如Python程序开发中,我们通常直接调用 numpy.convolve(a, v, mode='full') 来完成离散卷积运算。
下节将继续介绍《 AI数学基础28-数字图像卷积1(Image convolution) 》
全部用文件IO的话可以这样: matlab把所有参数输出到一个文件里,然后用system命令调python脚本。python脚本读文件做计算结果再写文件。最后matlab再读文件得到结果。 假设python脚本的用法是: python xxx.py in.txt out.txt 则matlab调用命令...