#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace cv; void sharpenImage1(const cv::Mat& image, cv::Mat &result) { cv::Mat kelnel (3,3,CV_32F,cv::Scalar(0)); //构造核函数 //对核元素进行赋值 kelnel.at<float>(1,1)=5.0; kelnel.at<float>(0,1)=-1.0; kelnel.at<float>(2,1)=-1.0; kelnel.at<float>(1,0)=-1.0; kelnel.at<float>(1,2)=-1.0; //对图像进行滤波 cv::filter2D(image,result,image.depth(),kelnel); } int main(int argc, char* argv[]) { Mat image = cv::imread("my.jpg"); Mat image_gray ; image_gray.create(image.size(),image.type());//创建一个矩阵 if(!image.data) return -1;//判断是否图片存在,若不存在,返回-1 if(image.channels()==3)//如果为3通道,即彩色图片 cv::cvtColor(image,image_gray,CV_RGB2GRAY);//将彩色图片转化为灰度图片 cv::Mat result; result.create(image_gray.size(),image_gray.type()); double time_ = static_cast<double>(cv::getTickCount()); sharpenImage1(image_gray,result); time_ = 1000*static_cast<double>(cv::getTickCount()-time_)/cv::getTickFrequency(); std::cout<<"time = "<<time_<<"ms"<<std::endl; cv::imshow("image result",result); cv::waitKey(); return 0; }
对图像进行锐化 并输出时间
原文:http://www.cnblogs.com/zsmj2014/p/3594107.html