矩阵的掩膜操作

#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>
using namespace cv;


int main(int argc,char** argv)
{
    Mat src=imread("C:/Users/HU/Desktop/82dcdd06.jpg");
    if(src.empty())
    {
        printf("could't load image...\n");
        return -1;
    }
    namedWindow("opencv setup demo",CV_WINDOW_AUTOSIZE);//创建一个名为opencv setup demo 自动调整窗口大小的窗口
    imshow("opencv setup demo",src);
    /*int cols=(src.cols-1)*src.channels();
    int offsetx=src.channels();
    int rows=src.rows;
    Mat dst=Mat::zeros(src.size(),src.type());
    for(int row=1;row<(rows-1);row++)
    {
        const uchar* current= src.ptr<uchar>(row);
        const uchar* previous= src.ptr<uchar>(row-1);
        const uchar* next= src.ptr<uchar>(row+1);
        uchar* output=dst.ptr<uchar>(row);
        for(int col=offsetx;col<cols;col++)
        {
            output[col]=saturate_cast<uchar>(5*current[col]-(current[col-offsetx]+current[col+offsetx]+previous[col]+next[col]));
        }
    }
    waitKey(0);*/

    //修改图像
    Mat dst=Mat::zeros(src.size(),src.type());
      Mat kern = (Mat_<char>(3, 3) << 0, -1, 0,-1, 5, -1,0, -1, 0);
    filter2D(src, dst, src.depth(), kern); //另一种掩膜处理方式
    
    namedWindow("opencv",CV_WINDOW_AUTOSIZE);
    imshow("opencv",dst);
    waitKey(0);
    //保存图像


    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容