遍历图像和邻域操作,图像锐化
2014-04-15 13:43
92 查看
#include<opencv2\core\core.hpp> #include<opencv2\imgproc\imgproc.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> using namespace std; using namespace cv; //锐化函数 void sharpen(const cv::Mat &image,cv::Mat &result) { result.create(image.size(),image.type()); for(int j=1;j<image.rows-1;j++) { const uchar* previous=image.ptr<const uchar>(j-1); const uchar* current=image.ptr<const uchar>(j); const uchar* next=image.ptr<const uchar>(j+1); uchar *output=result.ptr<uchar>(j); for(int i=1;i<image.cols-1;i++) { *output++=cv::saturate_cast<uchar>(5*current[i]-current[i-1]-current[i+1]-previous[i]-next[i]); } } result.row(0).setTo(cv::Scalar(0)); result.row(result.rows-1).setTo(cv::Scalar(0)); result.col(0).setTo(cv::Scalar(0)); result.col(result.cols-1).setTo(cv::Scalar(0)); } int main() { cv::Mat image=cv::imread("d:\\test\\opencv\\img.jpg",0);//注意灰色图像 cv::Mat out; sharpen(image,out); cv::namedWindow("result"); cv::imshow("result",out); cv::namedWindow("img"); cv::imshow("img",image); waitKey(0); return 0; }
相关文章推荐
- OpenCV学习篇之六 遍历图像和邻域操作
- 学习《OpenCV 2 计算机视觉编程手册》第二章遍历图像和领域操作实例——对图像进行锐化
- opencv学习笔记(3) 锐化图像 邻域操作 ROI
- opencv2—(4)遍历图像和邻域操作
- OpenCV中遍历图像与邻域操作
- opencv-02--图像的邻域操作
- opencv2中对图像ROI的理解及遍历操作
- opencv开发笔记(七):三种方法遍历图像操作像素
- opencv 图像的邻域操作(学习他人方法)
- opencv像素基本操作及图像遍历at
- opencv像素基本操作及图像遍历at
- matlab图像的邻域操作与块操作
- opencv像素基本操作及图像遍历at
- opencv2学习笔记4-操作图像(图像锐化-拉普拉斯算子)
- Opencv中图像的遍历与像素操作
- opencv像素基本操作及图像遍历at
- opencv像素基本操作及图像遍历at
- Opencv学习笔记(四)--图像处理平滑,锐化操作
- matlab图像的邻域操作与块操作
- opencv初探(一)——图像遍历的三种操作