API实现掩膜操作
#include<opencv2/opencv.hpp>;
using namespace cv;
int main(int argc,char* argv) {
Mat source1, change1;
source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\1.PNG");
if (source1.empty()) {
printf("can not load image ... \n");
return -1;
}
imshow("原图",source1);
source1.copyTo(change1); //change1=Mat::zeros(source1.size(),source1.type());
double t = getTickCount(); //计算操作的时间函数
Mat kernel = (Mat_<char>(3,3)<<0,-1,0,-1,5,-1,0,-1,0); //定义掩膜函数 3*3=9 正方格 可调整 9*9
filter2D(source1,change1,source1.depth(),kernel); //提高对比度函数 source1.depth()=-1;
double timeconsume = (getTickCount() - t) / getTickFrequency(); //getTickFrequency() 返回CPU的频率
printf("contrast image %.2f\n",timeconsume);
//cout << "" << timeconsume << "秒\n" << endl;
imshow("提高对比度",change1);
waitKey(0); //system("pause");
return 0;
}
演示效果: