【opencv练习07 - 滤波器(锐化)】
来源:互联网 发布:类似快看小说的软件 编辑:程序博客网 时间:2024/06/05 08:08
void Sharpen(const Mat& myImage, Mat& Result){ CV_Assert( myImage.depth() != sizeof(uchar)); Result.create(myImage.size(), myImage.type()); const int nChannels = myImage.channels(); for(int j = 1; j < myImage.rows -1 ; ++j) { const uchar* previous = myImage.ptr<uchar>(j-1); const uchar* current = myImage.ptr<uchar>(j); const uchar* next = myImage.ptr<uchar>(j+1); uchar* output = Result.ptr<uchar>(j); for(int i = nChannels; i < nChannels * (myImage.cols -1); ++i) { *output++ = saturate_cast<uchar>(5 * current[i] - current[ i- nChannels] - current[i + nChannels] - previous[i] - next[i]); } } Result.row(0).setTo(Scalar(0)); Result.row(Result.rows -1).setTo(Scalar(0)); Result.col(0).setTo(Scalar(0)); Result.col(Result.cols -1).setTo(Scalar(0));}void main1(void){ Mat image; Mat out_image; Mat out_image_filter2D; double t[2]; image = imread("YY01.jpg",CV_LOAD_IMAGE_COLOR); t[0] = (double)getTickCount(); Sharpen(image,out_image); t[0] = ((double)getTickCount() - t[0])/getTickFrequency(); imshow("Disp YY",image); imshow("Disp Sharpen_YY",out_image); Mat kern = (Mat_<char>(3,3)<<0,-1, 0, -1, 5,-1, 0,-1, 0); t[1] = (double)getTickCount(); filter2D(image,out_image_filter2D,image.depth(), kern); t[1] = ((double)getTickCount() - t[1])/getTickFrequency(); imshow("Disp filter2D_YY",out_image); //show cout<<"方法 【手工滤波器】—— Times passed in Second: "<<t[0]<<endl; cout<<"方法 【filter2D 滤波器】—— Times passed in Second: "<<t[1]<<endl; waitKey(0);}
经过OpenCV优化的滤波器速度,明显提高了一个数量级!
滤波器功能: 图像锐化
0 0
- 【opencv练习07 - 滤波器(锐化)】
- 我的OpenCV学习笔记(10):空域滤波之锐化滤波器
- opencv实现巴特沃斯高通滤波器对指纹图像进行锐化处理
- 3.6 锐化空间滤波器
- 锐化空间滤波器
- 【3.6】锐化空间滤波器
- 数字图像处理--锐化空间滤波器
- 图像锐化的空域滤波器
- OpenCV滤波器
- opencv滤波器
- OpenCV实现USM锐化
- OpenCV之图像锐化
- OpenCV图像锐化
- Opencv--图像锐化处理
- OpenCV实现图像锐化
- OpenCV实现USM锐化
- opencv 图像锐化
- OpenCV实现图片锐化
- 《我的RobotFramework书》1-6-4 变量的属性和作用范围
- js生成二级城市联动菜单,动态生成年、月、日字段,生产一个验证码
- Android开发项目实践(集)
- Java 序列化和反序列化
- Go学习日记<一>
- 【opencv练习07 - 滤波器(锐化)】
- Nginx-----反向代理Google
- DNS修改即时生效
- ViewDragHelper学习
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- Product of Array Except Self
- JavaScript几种函数声明方式的区别
- android ListView 几个重要属性
- android SystemServer进程的作用