• opencv矩阵的掩模操作


    main.cpp

    #include <cstdio>
    #include <opencv2/opencv.hpp>
    
    using namespace cv;
    
    int main(int argc, char **argv) {
        Mat image;
        //    加载图片
        image = imread("../../picture/bg1.webp", 1);
        if (!image.data) {
            printf("No image data \n");
            return -1;
        }
        //    创建窗口
        namedWindow("Source Image", WINDOW_AUTOSIZE);
        //    展示图片
        imshow("Source Image", image);
        Mat dst = Mat::zeros(image.size(), image.type());
        //    掩膜实现
        //    int cols = (image.cols - 1) * image.channels();
        //    int offset = image.channels();
        //    int rows = image.rows;
        //    for (int row = 1; row < (rows - 1); row++) {
        //        const uchar *previous = image.ptr<uchar>(row - 1);
        //        const uchar *current = image.ptr<uchar>(row);
        //        const uchar *next = image.ptr<uchar>(row + 1);
        //        uchar *output = dst.ptr<uchar>(row);
        //        for (int col = offset; col < cols; ++col) {
        //            // 掩模计算:I(i,j) = 5*I(i,j) - [I(i,j-1) + I(i,j+1) + I(i-1,j) + I(i+1,j)]
        //            output[col] = saturate_cast<uchar>(
        //                    5 * current[col] - (current[col - offset] + current[col + offset] + previous[col] + next[col]));
        //        }
        //    }
        //    opencv掩模实现
        Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
        filter2D(image, dst, image.depth(), kernel);
        namedWindow("contrast image", WINDOW_AUTOSIZE);
        imshow("contrast image", dst);
        //    等待按键
        waitKey(0);
        return 0;
    }
    

      

  • 相关阅读:
    Elasticsearch (二) 索引
    Elasticsearch (一)搭建与启动
    IDEA 插件
    IDEA 导入华丽的皮肤
    Tomcat https 访问
    oracle系统视图SQL语句整理
    Java内存优化和性能优化的几点建议
    Tomcat配置SSL证书
    sublime集成MinGW,打造C/C++开发环境
    一个简单的Vue.js组件开发示例
  • 原文地址:https://www.cnblogs.com/navysummer/p/16299512.html
Copyright © 2020-2023  润新知