首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用OpenCV进行图像锐化时遇到的有关问题

2012-05-13 
用OpenCV进行图像锐化时遇到的问题锐化函数是《OpenCV 2 Computer Vision Application Programming Cookboo

用OpenCV进行图像锐化时遇到的问题
锐化函数是《OpenCV 2 Computer Vision Application Programming Cookbook》书上的例子

C/C++ code
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; void sharpen(const cv::Mat &image, cv::Mat &result) {  //这个函数是书上的例子// allocate if necessaryresult.create(image.size(), image.type());for (int j= 1; j<image.rows-1; j++) { // for all rows// (except first and last)const uchar* previous=image.ptr<const uchar>(j-1); // previous rowconst uchar* current=image.ptr<const uchar>(j); // current rowconst uchar* next=image.ptr<const uchar>(j+1); // next rowuchar* output= result.ptr<uchar>(j); // output rowfor (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]);}}// Set the unprocess pixels to 0//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));} void main(){// read the imageMat image= cv::imread("E:\\library\\Pictures\\grayLena.jpg");// process the imageMat result;sharpen(image,result);// display the imagecv::namedWindow("Image");cv::imshow("Image",image);cv::namedWindow("result");cv::imshow("result",result);waitKey();}

输出的锐化后的图像不完整,整个右半边是灰色矩形

请问这是怎么回事


[解决办法]
领分的来了!(^_^)

热点排行