学习OpenCV(三)
来源:互联网 发布:ppt mac破解版下载 编辑:程序博客网 时间:2024/06/14 14:14
/**本程序主要学习图像的简单的处理,过滤操作*第一种方法使用自己写的算法*第二种使用OpenCV自带的函数sharpen2D()*注意学习 自定义矩阵的方法*/#include "cv.h"#include "highgui.h"#include "..\..\..\..\..\..\opencv\build\include\opencv2\imgproc\imgproc.hpp"void sharpen1(cv::Mat image , cv::Mat &result){result.create(image.size() , image.type()) ;//Create的两种方法int tRows = image.rows ;int tcols = image.cols ;for(int i = 1 ; i < tRows - 1 ; ++ i){const uchar * pUp = image.ptr<const uchar>(i - 1) ;const uchar * pCur = image.ptr<const uchar>(i) ;const uchar * pDown = image.ptr<const uchar>(i + 1) ;uchar * pOut = result.ptr<uchar>(i) ;for(int j = 1 ; j < tcols - 1 ; ++ j){pOut[j] = cv::saturate_cast<uchar>(5 * pCur[j] - pCur[j-1] - pCur[j+1] - pUp[j] - pDown[j]) ;}}result.row(0).setTo(cv::Scalar(0)) ;//注意这里row 和 col 与 rows 和 cols 的区别result.row(tRows - 1).setTo(cv::Scalar(0)) ;result.col(0).setTo(cv::Scalar(0)) ;result.col(tcols - 1).setTo(cv::Scalar(0)) ;}void shprpen2D(cv::Mat image , cv::Mat &result){cv::Mat kernel(3 , 3 , CV_32F , cv::Scalar(0)) ;kernel.at<float>(0 , 1) = -1;kernel.at<float>(1 , 0) = -1;kernel.at<float>(1 , 1) = 5 ;kernel.at<float>(1 , 2) = -1 ;kernel.at<float>(2 , 1) = -1;cv::filter2D(image , result , image.depth() , kernel) ;}int main(){cv::Mat image ;cv::Mat result ;image = cv::imread("D:/Development/OpenCV/images/boldt.jpg" , 0) ;cv::namedWindow("Original") ;cv::imshow("Original" , image) ;//sharpen1(image , result) ;shprpen2D(image , result) ;cv::namedWindow("Result") ;cv::imshow("Result" , result) ;cv::waitKey() ;return 0 ;}
0 0
- 学习OpenCV(三)
- OpenCV 学习笔记(三)
- opencv学习笔记(三)
- opencv学习笔记(三)
- OpenCV学习笔记(三)
- 学习opencv记录(三)
- OpenCV学习笔记系列(三)
- OpenCV 2.2 的学习笔记(三)
- opencv学习(三)摄像头播放
- opencv学习系列(三)---直线检测
- 三、openCV学习笔记(Image Processing)
- OpenCV入门学习(三)HistogramEquivalent
- OpenCV学习笔记(三):邻域操作
- OpenCV 学习日记(三)--- 常见数据类型
- OpenCV学习(三)写视频文件
- OpenCV学习笔记(三):腐蚀
- opencv学习笔记(三) 边缘检测
- openCV学习笔记(三): 认识Mat
- 深入理解SP、LR和PC
- 用java实现将int等类型转换为byte数组,将byte数组转换为int等类型,支持大小端字节序
- 学习OpenCV(二)
- 使用maven的profile和filter插件管理配置项
- Maven编译打包时如何忽略测试用例
- 学习OpenCV(三)
- shell脚本执行返回的状态码
- JAVA的StringBuffer类用法
- 网站访问量可视化
- Python爬虫整理(二)
- Oracle trunc()函数的用法
- Basic Data Structures and Algorithms in the Linux Kernel
- c#中list使用示例
- MYSQL mysql 无法创建外键约束 及 errno: 121错误