最近几天研究对图片进行清晰度增强的方法,有一些比较肤浅的结论,记录一下备忘。

首先是如果想自己写一个对清晰度进行增强的方法,其实不太容易,我尝试过,遇到各种问题,比如边缘的圆滑度会被破坏,像素值改变的扩散程度不好把控,又不能不处理,所以如果不想花太大的力气,还是找一个知名度较高的公用方法吧。

目前搜索到的用的比较多的方法有拉普拉斯和高斯两种锐化的算法,前者锐化结果比较清晰,但略感粗糙,后者相对有点模糊,但是质感比较细腻,也算各有千秋吧。

拉普拉斯锐化

void sharpen_laplas4(double weight=1.0, bool show = true)
{
Mat& m = srcImg; m.copyTo(nowImg); int w1 = (m.cols - 1), h1 = (m.rows - 1);
int la;
int row_size = nowImg.step, pixel_size = nowImg.elemSize(); uint8_t* buf, * row;
row = (uint8_t*)nowImg.data + row_size; buf = row + pixel_size;
int row_size0 = m.step, pixel_size0 = m.elemSize(); uint8_t* buf0, * buf01, * buf02, * row0;
row0 = (uint8_t*)m.data + row_size0; buf0 = row0 + pixel_size0; buf01 = buf0 - row_size0; buf02 = buf0 + row_size0;
for (int i = 1; i < h1; i++)
{
for (int j = 1; j < w1; j++)
{
//la = 4 * m.at(i, j) - m.at(i + 1, j) - m.at(i - 1, j) - m.at(i, j + 1) - m.at(i, j - 1); nowImg.at(i, j) = saturate_cast(nowImg.at(i, j) + la);
la = 4 * (*buf0) - *buf02 - *buf01 - *(buf0 + pixel_size0) - *(buf0 - pixel_size0); *buf= saturate_cast(*buf0 + la*weight);
buf += pixel_size; buf0 += pixel_size0; buf01 += pixel_size0; buf02 += pixel_size0;
}
row += row_size; buf = row + pixel_size;
row0 += row_size0; buf0 = row0 + pixel_size0; buf01 = buf0 - row_size0; buf02 = buf0 + row_size0;
}
if (show) { stringstream ss; ss << "laplas w=" << weight; cv::imshow(ss.str().c_str(), nowImg); }
}

高斯锐化

// 锐化的weight值一般取-0.5, -1.0

void sharpen_gaus(double weight, bool show = true)
{
Mat& m = srcImg; m.copyTo(nowImg); Mat blur_img;
GaussianBlur(m, blur_img, Size(5, 5), 0, 0);   // 对灰度图效果较好
//GaussianBlur(m, blur_img, Size(0, 0), 25);  // 对彩色图效果较好
addWeighted(m, 1-weight, blur_img, weight, 0, nowImg);
if (show) { stringstream ss; ss << "gaus w=" << weight; cv::imshow(ss.str().c_str(), nowImg); }
}

图片清晰度增强(锐化)方法浅探 - 拉普拉斯算法和高斯算法(c++ opencv)相关推荐

  1. Topaz Sharpen AI for Mac(图片清晰度增强软件)

    Topaz Sharpen AI for Mac 是一款通过人工智能AI图片清晰度增强软件.topaz sharpen ai版可以一键提高图片的清晰度,适用于一些分辨率不是很高.图像细节差的图片处理. ...

  2. Ollydbg中断方法浅探

    Ollydbg中断方法浅探 Ollydbg是一个新的32位的汇编层调试软件.适应于windows98.me.2000.xp和2003操作系统.由于他具有图形窗口界面,所以操作方便.直观,是cracke ...

  3. 图片清晰度增强软件(使用测试)python

    图片清晰度增强软件 示例 增强前: 增强后: 软件使用及说明地址: 链接:百度网盘 请输入提取码 提取码:xm3h 软件原理: 调用百度引擎 ----------------------------- ...

  4. 图片数据增强的方法——收藏

    使用cv2,numpy,PIL模块实现图像数据的数据增强. 计算机视觉中的图像增强,是人为的为视觉不变性(语义不变)引入了先验知识.数据增强也基本上成了提高模型性能的最简单.直接的方法了. 一.原图片 ...

  5. Ollydbg 中断方法浅探

    Ollydbg是一个新的32位的汇编层调试软件.适应于windows98.me.2000.xp和2003操作系统.由于他具有图形窗口界面,所以操作方便.直观,是cracker的好工具. 由于Ollyd ...

  6. 提高图片清晰度的快速方法?

    搞定含噪和质量下降的图像.利用在线处理软件一键上传,然后下载即可. /zh.pixfix.com

  7. prim算法求最小生成树_最小生成树的两种方法(Kruskal算法和Prim算法)

    关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...

  8. 最小生成树的两种方法(Kruskal算法和Prim算法)

    关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...

  9. 图片清晰度如何修复?简单的修复方法来了

    图片清晰度如何修复?有的时候好不容易找到一些好看的头像或背景图,但是却很模糊.或者说你有个不会拍照的男票,拍出来的照片都很模糊.这个时候,我们拥有一款好用的图片修复软件就显得尤为重要.下面小编就来给大 ...

最新文章

  1. 《LINQ实战》译者感言
  2. 贵州大学计算机科学研究所,贵州大学计算机科学与技术学院
  3. 子窗体菜单合并到父窗体菜单的解决办法
  4. 专访阿里数据库备份专家 教你pick最有效的备份系统
  5. 不须邮件服务器邮件发送asp插件,用asp实现支持附件的email系统_邮件服务器
  6. javascript之调度:setTimeout 和 setInterval
  7. MS SQL Server存储过程的优点有哪些呢?
  8. 枯燥编程加奇炫美术 —— 看育碧 Ubisoft 如何开发游戏大作
  9. 大学里学的单片机和网课一对一学单片机有什么区别
  10. “做人难,人难做,难做人,做男人更难啊!
  11. 为什么devc调试时循环一下就过去了_SEPCOIII英语研习社(第六十一讲)| 燃气轮机调试...
  12. java des 加密 js 解密_js 实现DES加密解密
  13. PyTorch YOLOV3 模型转换问题
  14. 混沌数学之Chua's circuit(蔡氏电路)
  15. Android6.0下的短信接收与发送功能的实现
  16. 第七天 位置参数 变量运算if case || find locate compress
  17. L0/L1/L2/无穷范数
  18. 读取无线手柄数据_清洁效果强大,续航持久,吉米W7无线智能洗地机让拖地更高效...
  19. Java(web)项目安全漏洞及解决方式【面试+工作】
  20. C语言实现扫雷小游戏(具体步骤+具体说明)

热门文章

  1. 基于javaWeb的毕业生论文管理系统——计算机毕业设计
  2. 钟表指针c语言,C语言钟表【改进版】
  3. Friends 人物简介
  4. java中如何启动一个新的线程三种方法
  5. linux ttyusb设备与windows modem 口,Ubuntu下找不到ttyUSB*问题解决
  6. 基于Node的Promise使用介绍
  7. 探寻宝藏---双向dp
  8. Java学习四阶段-09 Sentinel限流熔断
  9. 第一周CoreIDRAW
  10. 从本质看海明码——海明码的由来