zoukankan      html  css  js  c++  java
  • 拉普拉斯锐化

    编译环境:QT(4.7.4)+WIN7(64位)   

    使用的模板就是书上最简单的laplace模板:

      

    0 -1 0
    -1 4 -1
    0 -1 0

        代码如下:

     1 void MainWindow::on_action_laplace_triggered()
     2 {
     3     //image_png指向原图像
     4     width = image_png.width();
     5     height = image_png.height();
     6     int muban[3][3] = {0,-1,0,-1,4,-1,0,-1,0};
     7     
     8     //grayImg保存锐化后的结果
     9     grayImg = QImage(width,height,QImage::Format_RGB888);
    10 
    11     for(int i=0;i < width;i++)
    12     {
    13         for(int j =0;j < height;j ++)
    14         {
    15             int sum = 0;
    16             
    17             //对每一个像素使用模板
    18             for(int m = i-1;m <= i+1;m++)
    19             {
    20                 for(int n = j-1;n <= j+1;n++)
    21                 {
    22                     //边界点像素为0,所以对应相乘时不加和
    23                     if(m>=0&&n>=0&&m<width&&n<height)
    24                         sum += qGray(image_png.pixel(m,n))*muban[n-j+1][m-i+1];
    25                 }
    26             }
    27             
    28             //获取原图像对应点灰度,和拉普拉斯微分后图像对应点相加
    29             int ogray = qGray(image_png.pixel(i,j));
    30             sum = (sum >= 0)?sum:0;
    31             sum = (sum+ogray>255)?255:sum+ogray;
    32 
    33             //这里只实现了灰度图像,所以RGB值相等。
    34             grayImg.setPixel(i,j,qRgb(sum,sum,sum));
    35         }
    36     }
    37     update();
    38 }

    主要注意以下几点:
    1.拉普拉斯微分处理后,有些点像素值为负值,所以有第30行的对sum值的判断和修改。如果没有这句,得到的微分后的图像中有很多白点。

    2.拉普拉斯算子处理后的图像要和原图像相加,可以复原背景特性并保持拉普拉斯瑞华处理的效果。如果所使用的模板中心是负数,那么必须将原图像减去经拉普拉斯变换后的图像。如果像我这里使用的模板中心是正数,那么就将原图像加上经过拉普拉斯变换后的图像。

    3.经拉普拉斯变换处理后的图像与原图像对应灰度相加,有可能超过最大灰度级255,所以代码31行加了相应的判断。如果没有这个判断,得到的图像看起来更像是平滑过而不是锐化过的。

    得到的效果截图如下:

    转载请注明出处:BY DEMONEDGE
  • 相关阅读:
    vue中使用router全局守卫实现页面拦截
    Java入门之Maven创建Web项目
    Java入门之Maven安装并集成IDE
    Java入门之IDE配置Tomcat
    Java入门之Tomcat运行
    Java入门之Tomcat安装及环境变量配置
    Java入门之IDE集成开发环境安装及配置
    Java入门之JDK安装及环境变量配置
    查看SQL Server中的锁表及解锁
    DES加密解密
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3700428.html
Copyright © 2011-2022 走看看