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 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问