#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main(int argc, char** argv) {
Mat res = imread("D:\picture/caomei.jpg");
Mat dst;
if (res.empty()) {
printf("could not load image... \r\n");
return -1;
}
namedWindow("Imput Image",CV_WINDOW_AUTOSIZE);
imshow("Imput Image",res);
/*
int clos = (res.cols - 1 ) * res.channels();
int offsetx = res.channels();
int rows = res.rows;
dst = Mat::zeros(res.size(), res.type());
for (int row = 1; row < rows - 1; row++) {
const uchar* previous = res.ptr<uchar>(row-1);
const uchar* current = res.ptr<uchar>(row);
const uchar* next = res.ptr<uchar>(row+1);
uchar* output = dst.ptr<uchar>(row);
for (int clo = offsetx; clo < clos; clo++) {
output[clo] = saturate_cast<uchar>(5 * current[clo] - (current[clo - offsetx] + current[clo + offsetx] + previous[clo] + next[clo]));
}
}
*/
double t = getTickCount();
Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
filter2D(res, dst, res.depth(), kernel);
double timeconsume = (getTickCount() - t) / getTickFrequency();
printf("tim consume %.2f\n", timeconsume);
namedWindow("OutPut Image",CV_WINDOW_AUTOSIZE);
imshow("OutPut Image",dst);
imwrite("D:\picture/caomei2.jpg",dst);
waitKey(0);
return 0;
}
opencv——矩阵的掩膜操作
最新推荐文章于 2022-01-28 15:29:18 发布