矩阵的掩膜操作

#include
#include
#include
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(row);
        const uchar* previous= src.ptr(row-1);
        const uchar* next= src.ptr(row+1);
        uchar* output=dst.ptr(row);
        for(int col=offsetx;col(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_(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;
}

你可能感兴趣的:(矩阵的掩膜操作)