美文网首页
10. 图像卷积

10. 图像卷积

作者: 逍遥才子 | 来源:发表于2020-03-11 12:08 被阅读0次
image.png
image.png
image.png
#include <opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {

    Mat src = imread("D:/HUANGHAI_WORK/tools/opencv4/opencv/sources/samples/data/home.jpg");


    namedWindow("input", WINDOW_AUTOSIZE);
    imshow("input", src);

    int h = src.rows;
    int w = src.cols;
    Mat result = src.clone();
    for (int row = 1; row < h-1; row++)
    {
        for (int col = 1; col < w-1; col++)
        {
            //3x3卷积核
            int sb = src.at<Vec3b>(row, col)[0]
                +src.at<Vec3b>(row-1,col-1)[0]
                +src.at<Vec3b>(row-1,col)[0]
                +src.at<Vec3b>(row-1,col+1)[0]
                + src.at<Vec3b>(row, col-1)[0]
                + src.at<Vec3b>(row, col+1)[0]
                + src.at<Vec3b>(row+1, col-1)[0]
                + src.at<Vec3b>(row+1, col)[0]
                + src.at<Vec3b>(row+1, col+1)[0];
            int sg = src.at<Vec3b>(row, col)[1]
                + src.at<Vec3b>(row - 1, col - 1)[1]
                + src.at<Vec3b>(row - 1, col)[1]
                + src.at<Vec3b>(row - 1, col + 1)[1]
                + src.at<Vec3b>(row, col - 1)[1]
                + src.at<Vec3b>(row, col + 1)[1]
                + src.at<Vec3b>(row + 1, col - 1)[1]
                + src.at<Vec3b>(row + 1, col)[1]
                + src.at<Vec3b>(row + 1, col + 1)[1];
            int sr = src.at<Vec3b>(row, col)[2]
                + src.at<Vec3b>(row - 1, col - 1)[2]
                + src.at<Vec3b>(row - 1, col)[2]
                + src.at<Vec3b>(row - 1, col + 1)[2]
                + src.at<Vec3b>(row, col - 1)[2]
                + src.at<Vec3b>(row, col + 1)[2]
                + src.at<Vec3b>(row + 1, col - 1)[2]
                + src.at<Vec3b>(row + 1, col)[2]
                + src.at<Vec3b>(row + 1, col + 1)[2];
            result.at<Vec3b>(row, col)[0] = sb / 9;
            result.at<Vec3b>(row, col)[1] = sg / 9;
            result.at<Vec3b>(row, col)[2] = sr / 9;
        }
    }

    imshow("result", result);
    Mat dst;
    blur(src, dst, Size(3, 3), Point(-1, -1), BORDER_DEFAULT);
    imshow("blur-dst", dst);

    //边缘填充
    int border = 200;
    Mat borderM;
    copyMakeBorder(src, borderM, border, border, border, border, BORDER_DEFAULT);

    imshow("border fill demo", borderM);

    waitKey(0);
    destroyAllWindows();
    return 0;
}
image.png image.png
image.png
image.png

相关文章

  • 10. 图像卷积

  • 图像卷积的秘密

    参考博客首先,图像卷积核卷积操作时有区别的,图像卷积不改变图像的尺寸,但是类似深度学习里的卷积层是会改变图像的大小...

  • 反卷积(转 )

    转 卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积) 1. 图像卷积 卷积的时候需要对卷积核进行1...

  • 图像的卷积

    1.卷积的定义图像卷积是对图像进行处理的最常用方法,如:去噪、滤波、边缘提取等。对图像做卷积操作其实就是利用卷积核...

  • 图像的空间卷积滤波(image spatialconvoluti

    时域卷积(spatialconvolution) 对图像做时域滤波,其数学原理就是:原图像和卷积核(kernel)...

  • 2019-05-29(卷积单元—更新中)

    卷积神经网络的基本模块 视觉基本问题:图像分类、目标识别、目标检测、图像分割、目标分割。 卷积层 卷积运算:对应位...

  • 卷积,滤波,平滑

    图像处理基本概念——卷积,滤波,平滑 图像卷积:一种实现手段,可以说是数学在图像处理的一种延伸。图像滤波:一种图像...

  • [cs231n]Lecture 5: Convolutional

    CNN卷积、池化 全连接层将图像展开为以为向量 卷积层则保留图像空间结构 因此可以认为卷积网络是一系列卷积层组成的...

  • 卷积和反卷积

    卷积(convolution) 卷积是通过Filter提取原图像的特征,Filter会随着梯度下降提取出图像的主要...

  • OpenCV+Python图像滤波(平滑)+ 金字塔思想

    图像处理中的滤波一般用于消除噪声,增强图像。 图像卷积(滤波) 数字图像是一个二维的离散信号,对数字图像做卷积操作...

网友评论

      本文标题:10. 图像卷积

      本文链接:https://www.haomeiwen.com/subject/ewlqjhtx.html