图片清晰度增强(锐化)方法浅探 - 拉普拉斯算法和高斯算法(c++ opencv)
最近几天研究对图片进行清晰度增强的方法,有一些比较肤浅的结论,记录一下备忘。
首先是如果想自己写一个对清晰度进行增强的方法,其实不太容易,我尝试过,遇到各种问题,比如边缘的圆滑度会被破坏,像素值改变的扩散程度不好把控,又不能不处理,所以如果不想花太大的力气,还是找一个知名度较高的公用方法吧。
目前搜索到的用的比较多的方法有拉普拉斯和高斯两种锐化的算法,前者锐化结果比较清晰,但略感粗糙,后者相对有点模糊,但是质感比较细腻,也算各有千秋吧。
拉普拉斯锐化
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)相关推荐
- Topaz Sharpen AI for Mac(图片清晰度增强软件)
Topaz Sharpen AI for Mac 是一款通过人工智能AI图片清晰度增强软件.topaz sharpen ai版可以一键提高图片的清晰度,适用于一些分辨率不是很高.图像细节差的图片处理. ...
- Ollydbg中断方法浅探
Ollydbg中断方法浅探 Ollydbg是一个新的32位的汇编层调试软件.适应于windows98.me.2000.xp和2003操作系统.由于他具有图形窗口界面,所以操作方便.直观,是cracke ...
- 图片清晰度增强软件(使用测试)python
图片清晰度增强软件 示例 增强前: 增强后: 软件使用及说明地址: 链接:百度网盘 请输入提取码 提取码:xm3h 软件原理: 调用百度引擎 ----------------------------- ...
- 图片数据增强的方法——收藏
使用cv2,numpy,PIL模块实现图像数据的数据增强. 计算机视觉中的图像增强,是人为的为视觉不变性(语义不变)引入了先验知识.数据增强也基本上成了提高模型性能的最简单.直接的方法了. 一.原图片 ...
- Ollydbg 中断方法浅探
Ollydbg是一个新的32位的汇编层调试软件.适应于windows98.me.2000.xp和2003操作系统.由于他具有图形窗口界面,所以操作方便.直观,是cracker的好工具. 由于Ollyd ...
- 提高图片清晰度的快速方法?
搞定含噪和质量下降的图像.利用在线处理软件一键上传,然后下载即可. /zh.pixfix.com
- prim算法求最小生成树_最小生成树的两种方法(Kruskal算法和Prim算法)
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...
- 最小生成树的两种方法(Kruskal算法和Prim算法)
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...
- 图片清晰度如何修复?简单的修复方法来了
图片清晰度如何修复?有的时候好不容易找到一些好看的头像或背景图,但是却很模糊.或者说你有个不会拍照的男票,拍出来的照片都很模糊.这个时候,我们拥有一款好用的图片修复软件就显得尤为重要.下面小编就来给大 ...
最新文章
- 《LINQ实战》译者感言
- 贵州大学计算机科学研究所,贵州大学计算机科学与技术学院
- 子窗体菜单合并到父窗体菜单的解决办法
- 专访阿里数据库备份专家 教你pick最有效的备份系统
- 不须邮件服务器邮件发送asp插件,用asp实现支持附件的email系统_邮件服务器
- javascript之调度:setTimeout 和 setInterval
- MS SQL Server存储过程的优点有哪些呢?
- 枯燥编程加奇炫美术 —— 看育碧 Ubisoft 如何开发游戏大作
- 大学里学的单片机和网课一对一学单片机有什么区别
- “做人难,人难做,难做人,做男人更难啊!
- 为什么devc调试时循环一下就过去了_SEPCOIII英语研习社(第六十一讲)| 燃气轮机调试...
- java des 加密 js 解密_js 实现DES加密解密
- PyTorch YOLOV3 模型转换问题
- 混沌数学之Chua's circuit(蔡氏电路)
- Android6.0下的短信接收与发送功能的实现
- 第七天 位置参数 变量运算if case || find locate compress
- L0/L1/L2/无穷范数
- 读取无线手柄数据_清洁效果强大,续航持久,吉米W7无线智能洗地机让拖地更高效...
- Java(web)项目安全漏洞及解决方式【面试+工作】
- C语言实现扫雷小游戏(具体步骤+具体说明)