版本python3.6
保存图片需要PIL,在 cmd 输入pip install pillow
以下是代码`

import numpy as np
import matplotlib.image as mpimg
from PIL import Image
# 代码功能:
# 对一幅3通道图像的一个尺度的卷积运算
def compute_conv(fm, kernel):
    [h, w] = fm.shape
    k = 3
    r = int(k / 2)
    padding_fm = np.zeros([h + 2, w + 2])  # , np.int)
    rs = np.zeros([h, w])  # , np.int)
    padding_fm[1:h + 1, 1:w + 1] = fm
    for i in range(1, h + 1):
        for j in range(1, w + 1):
            i0 = i - r
            i1 = i + r + 1
            j0 = j - r
            j1 = j + r + 1
            roi = padding_fm[i0:i1, j0:j1]
            rs[i - 1][j - 1] = np.sum(roi * kernel)
    return rs
# 定义卷积核
def kernel_i():
    weights_data = [
            [0, 0, 0],
            [0, 1, 0],
            [0, 0, 0]
    weights = np.asarray(weights_data)  # , np.int)
    return weights
def main():
    for i in range(c):
        l1 = temp[:, :, i]
        input = np.asarray(l1)  # , np.int)
        weights = kernel_i()  # 获取卷积核
        rs = compute_conv(input, weights)  # 卷积计算
        arr[:, :, i] = rs  # 把卷积后的结果传给新的数组
    # 把卷积后的结果保存为图片
    arr01 = np.array(arr, dtype=np.uint8)
    image = Image.fromarray(arr01, 'RGB')
    image.save('D:/01.jpg')
    # np.savetxt('D:/%d.txt' % (i+1), arr)  # 把每一个维度的矩阵分别保存为一个txt文本
img = mpimg.imread("D:/picture.jpg")
temp = np.asarray(img)   # , np.int)
[h, w, c] = temp.shape
arr = np.zeros((h, w, c), int)
main()
                    版本python3.6保存图片需要PIL,在 cmd 输入pip install pillow以下是代码` import numpy as npimport matplotlib.image as mpimgfrom PIL import Image代码功能:对一幅3通道图像的一个尺度的卷积运算def compute_conv(fm, kernel):[h, w] = fm.sha...
				
对于卷积神经网络(CNN)而言,相信很多读者并不陌生,该网络近年来在大多数领域都表现优异,尤其是在计算机视觉领域中。但是很多工作人员可能直接调用相关的深度学习工具箱搭建卷积神经网络模型,并不清楚其中具体的原理。本文将简单介绍卷积神经网络(CNN),方便读者大体上了解其基本原理及实现过程,便于后续工作中的实际应用。本文将按以下顺序展开:1.了解卷积操作2.了解神经网络3.数据预处理4.了解CNN5.了解优化器6.理解ImageDataGenerator7.进行预测并计算准确性8.demo在数学(尤其是函数分析)中,卷积是对两个函数(f和g)的数学运算,以产生第三个函数,该函数表示一个函数的形状如
自己实现卷积函数 我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现卷积操作,然后和tf.nn.conv2d()函数的结果对比,验证正确性。 调用tf.nn.conv2d()实现卷积 首先是调用卷积函数实现卷积操作: 这里说明一下conv2d的定...
在深度学习中,可以将每一层的卷积结果进行输出显示或保存。该代码可以实现每一层的卷积结果进行输出显示或保存。可以查看每一个卷积之后的效果。 # coding=utf-8 import tensorflow as tf import numpy as np import pdb from datetime import datetime import cv2 import os import matplotlib.pyplot as plt def conv_imshow(path, model,
vImage学习笔记——卷积(Convolution) 卷积(Convolution)是一个常用的图像处理技术,可以改变像素强度,从而影响周围其他像素的强度。卷积的常用技术是创建滤镜,使用卷积技术,你可以获取一些流行的图像效果,比如模糊(blur)、锐化(sharpen)及边缘检测(edge detection),这些效果在Photo Booth、iPhoto和Aperture都有广泛使用。
Python-opencv学习第十九课:图像放缩与插值 文章目录Python-opencv学习第十九课:图像放缩与插值一、学习部分二、代码部分1.引入库2.定义放缩函数和读入图片,放缩与插值3.完整代码三、运行结果总结 一、学习部分 记录笔者学习Python-opencv学习第十九课:图像放缩与插值,代码资料来源于网络贾老师视频。 二、代码部分 1.引入库 代码如下: import cv2 as cv import numpy as np 2.定义放缩函数和读入图片,放缩与插值 代码如下: def re
sk = socket.socket() # s.bind(address) 将套接字绑定到地址。在AF_INET下,以元组(host,port)的形式表示地址。 sk.bind(("172.29.25.11",8007)) # 开始监听传入连接。 sk.listen(True) while True: for i in range(100): # 接受连接并返回(conn,address),conn是新的套接字对象,可以用来接收和发送数
Python实现卷积计算的流程可以分为以下几步: 1. 定义卷积核:首先需要定义一个卷积核,它是一个小的矩阵,通常为3x3或5x5大小。卷积核中的数值称为权重,它们会与输入图像的像素进行乘法运算,并加和得到卷积结果。 2. 定义输入图像:将要进行卷积运算的图像作为输入,可以通过Python的NumPy库将其表示为一个矩阵。 3. 填充图像(可选):为了保持卷积前后图像大小不变,可以在输入图像的边缘添加一些像素,称为填充。可以选择不填充、在边缘填充0、或者对称复制边缘像素等方式进行填充。 4. 滑动卷积核:将卷积核按照一定的步长(通常为1)在输入图像上滑动,对每个位置都进行卷积运算。在每个位置上,将卷积核与输入图像上的像素进行乘法运算,并加和得到卷积结果。最终将所有卷积结果组合成一个矩阵,即为卷积后的图像。 5. 输出结果:输出卷积后的图像,可以使用Python的Matplotlib库将其显示出来。 总的来说,Python实现卷积计算的过程可以使用NumPy等库进行矩阵计算,也可以使用TensorFlow等深度学习框架的卷积层实现。