美文网首页
016-Opencv笔记-边缘处理

016-Opencv笔记-边缘处理

作者: 赌二八定律 | 来源:发表于2020-03-19 11:08 被阅读0次

    在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在
    四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之
    后再去掉这些边缘。openCV中默认的处理方法是: BORDER_DEFAULT,此外
    常用的还有如下几种:

    • BORDER_CONSTANT – 填充边缘用指定像素值
    • BORDER_REPLICATE – 填充边缘像素用已知的边缘像素值。
    • BORDER_WRAP – 用另外一边的像素来补偿填充
    copyMakeBorder(
     - Mat src, // 输入图像
     - Mat dst, // 添加边缘图像
     - int top, // 边缘长度,一般上下左右都取相同值,
     - int bottom,
     - int left,
     - int right, 
     - int borderType // 边缘类型
     - Scalar value 
    )
    
    示例代码
    #include "pch.h"
    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <math.h>
    
    using namespace cv;
    int main(int argc, char** argv) {
        Mat src, dst;
        src = imread("D:/11.jpg");
        if (!src.data) {
            printf("could not load image...\n");
            return -1;
        }
        char INPUT_WIN[] = "input image";
        namedWindow(INPUT_WIN, 0);
        namedWindow("bordefault", 0);
        namedWindow("borreplicate", 0);
        namedWindow("borwrap", 0);
        namedWindow("borconstant", 0);
        imshow(INPUT_WIN, src);
        
        int top = (int)(0.05*src.rows);
        int bottom = (int)(0.05*src.rows);
        int left = (int)(0.05*src.cols);
        int right = (int)(0.05*src.cols);
        RNG rng(12345);
        int bordefault = BORDER_DEFAULT;
        int borreplicate = BORDER_REPLICATE;
        int borwrap = BORDER_WRAP;
        int borconstant = BORDER_CONSTANT;
    
        Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
        copyMakeBorder(src, dst, top, bottom, left, right, bordefault, color);
        imshow("bordefault", dst);
    
        copyMakeBorder(src, dst, top, bottom, left, right, borreplicate, color);
        imshow("borreplicate", dst);
    
        copyMakeBorder(src, dst, top, bottom, left, right, borwrap, color);
        imshow("borwrap", dst);
    
        copyMakeBorder(src, dst, top, bottom, left, right, borconstant, color);
        imshow("borconstant", dst);
    
        waitKey(0);
        return 0;
    }
    
    效果图

    相关文章

      网友评论

          本文标题:016-Opencv笔记-边缘处理

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