anlamu 2017-04-10 09:12 采纳率: 0%
浏览 4029

opencv图像处理锐化问题

使用sharpen函数锐化灰度图像,但是只是锐化了三分之一,这个是教程的代码,看不出来哪里错了,求大佬们指导下。

代码如下:

#include//opencv2的核心头文件
#include//包括图形界面和视频图像处理的头文件
#include//每个c++程序必须包含的头文件
#include

void sharpen(const cv::Mat &image, cv::Mat &result)
{

result.create(image.size(), image.type()); // allocate if necessary

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 row
    const uchar* current = image.ptr<const uchar>(j);   // current row
    const uchar* next = image.ptr<const uchar>(j + 1);      // next row

    uchar* output = result.ptr<uchar>(j);   // output row

    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]);
        //          output[i]= 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));

}

int main()
{
cv::Mat result;
cv::Mat image;
image = cv::imread("8.jpg");
sharpen(image,result );
cv::namedWindow("image");
cv::imshow("image", image);
cv::namedWindow("result");
cv::imshow("result", result);
cvWaitKey(0);
return 0;
}

  • 写回答

1条回答 默认 最新

  • anlamu 2017-04-10 09:24
    关注

    图片说明
    这个是运行的结果和原图对比

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog