zoukankan      html  css  js  c++  java
  • OpenCV-C++ 图像卷积计算的边缘问题

    卷积边缘问题

    图像在执行卷积计算的时候,图像边缘的像素无法被计算,边缘无法被卷积核正确覆盖;

    • BORDER_DEFAULT
    • BORDER_CONSTANT: 填充边缘用指定像素值;
    • BORDER_REPLICATE: 填充边缘像素用已知的边缘像素值;
    • BORDER_WRAP: 用另外一遍的像素来补偿填充;

    使用copyMakeBorder添加边缘像素:

    void copyMakeBorder(InputArray src, OutputArray dst,
                        int top, int bottom, int left, int right,
                        int borderType, const Scalar& value = Scalar() );
    
    • src表示原始图像;
    • dst表示输出图像;
    • top, bottom, left, right表示四周扩展的像素数目;
    • borderType表示填充像素的方式
    • Scalar表示填充的像素值,配合BORDER_CONSTANT使用;

    完整代码

    #include <iostream>
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    
    /**
     * 边缘处理
    */
    int main(){
        // 读取图像
        Mat src = imread("/home/chen/dataset/lena.jpg");
        if (src.empty()){
            cout << "could not load image." << endl;
            return -1;
        }
        namedWindow("src", WINDOW_AUTOSIZE);
        imshow("src", src); 
    
        // 使用copyMakeBorder添加边缘像素
        int c = 0;
        RNG rng(12345);
        int borderType = BORDER_DEFAULT;
        Mat dst;
        namedWindow("dst", WINDOW_AUTOSIZE);
        while(true){
            c = waitKey(500);
            if((char)c == 27){
                break;
            }
            if ((char)c == 'r'){
                borderType = BORDER_REFLECT;
            } else if ((char)c == 'w'){
                borderType = BORDER_WRAP;
            } else if ((char)c == 'c'){
                borderType = BORDER_CONSTANT;
            }
            Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
            copyMakeBorder(src, dst, 100, 100, 100, 100, borderType, color);
            imshow("dst", dst);
        }
        waitKey(0);
    
        return 0;
    }
    
  • 相关阅读:
    AutoMapper bool与string互转
    Self-signed SSL certificates are being blocked
    Visual Studio 2019设置自定义头部注释
    用多进程同步方法演示“桔子-苹果”问题
    实验教学管理系统 c语言程序代写源码下载
    模拟游客一天的生活与旅游java程序代写源码
    Java作业代写
    快餐店运行模拟C++程序源码代写
    hadoop-2.0.0-cdh4.2.1安装手册
    CDH4 HA方案
  • 原文地址:https://www.cnblogs.com/chenzhen0530/p/14655774.html
Copyright © 2011-2022 走看看