Qt图像处理技术六:拉普拉斯锐化

效果图

源码

由该公式得到下方卷积核

使用到的卷积核:

//都把QImage转化为rgb888更好运算
QImage LaplaceSharpen(const QImage &origin)
{
QImage imgCopy;
int width = img.width();
int height = img.height();
int window[3][3] = {0, -1, 0, -1, 4, -1, 0, -1, 0};
if (img.format() != QImage::Format_RGB888) {
imgCopy = QImage(width, height, QImage::Format_RGB888);
} else {
imgCopy = QImage(img);
}
QImage imgCopyrgbImg = QImage(img).convertToFormat(QImage::Format_RGB888);
uint8_t *rgbImg = imgCopyrgbImg.bits();
uint8_t *rgb = imgCopy.bits(); int nRowBytes = (width * 24 + 31) / 32 * 4;
int lineNum_24 = 0;
for (int x = 1; x < img.width(); x++) {
for (int y = 1; y < img.height(); y++) {
int sumR = 0;
int sumG = 0;
int sumB = 0; for (int m = x - 1; m <= x + 1; m++)
for (int n = y - 1; n <= y + 1; n++) {
if (m >= 0 && m < width && n < height) {
lineNum_24 = n * nRowBytes;
sumR += rgbImg[lineNum_24 + m * 3] * window[n - y + 1][m - x + 1];
sumG += rgbImg[lineNum_24 + m * 3 + 1] * window[n - y + 1][m - x + 1];
sumB += rgbImg[lineNum_24 + m * 3 + 2] * window[n - y + 1][m - x + 1];
}
} int old_r = rgbImg[lineNum_24 + x * 3];
sumR += old_r;
sumR = qBound(0, sumR, 255); int old_g = rgbImg[lineNum_24 + x * 3 + 1];
sumG += old_g;
sumG = qBound(0, sumG, 255); int old_b = rgbImg[lineNum_24 + x * 3 + 2];
sumB += old_b;
sumB = qBound(0, sumB, 255);
lineNum_24 = y * nRowBytes;
rgb[lineNum_24 + x * 3] = sumR;
rgb[lineNum_24 + x * 3 + 1] = sumG;
rgb[lineNum_24 + x * 3 + 2] = sumB;
}
} return imgCopy;
}

Qt图像处理技术六:拉普拉斯锐化的更多相关文章

  1. 基础图像处理之混合空间增强——(Java:拉普拉斯锐化、Sobel边缘检测、均值滤波、伽马变换)

    相信看过冈萨雷斯第三版数字图像处理的童鞋都知道,里面涉及到了很多的基础图像处理的算法,今天,就专门借用其中一个混合空间增强的案例,来将常见的几种图像处理算法集合起来,看能发生什么样的化学反应 首先,通 ...

  2. paper 109 :图像处理中的拉普拉斯算子

    1.基本理论 拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性.一个二维图像函数 的拉普拉斯变换是各向同性的二阶导数,定义为:   为了更适合于数字图像处理,将该方程表示为离散形式:    另外 ...

  3. FPGA与数字图像处理技术

    数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行 ...

  4. HTML5图形图像处理技术研究

    摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...

  5. GDI+图形图像处理技术中Pen和Brush的简单使用和简单图形的绘制(C#)

    1.Graphics Graphics对象是GDI+绘图表面,因此在Windows窗体应用程序中要使用GDI+创建绘图,必须要先创建Graphics.在给窗体注册一个Paint事件后,Graphics ...

  6. 数字图像处理技术在TWaver可视化中的应用

    数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.常用的图像处理方法有图像增强.复原.编码.压缩等,数 ...

  7. php图形图像处理技术

    图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...

  8. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  9. Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解

    前话   Qt的图形视图框架,最核心的三个类为:QGraphicsScene.QGraphicsItem与QGraphicsView.   基于图形框架的高级白板软件Demo QGraphicsSce ...

  10. 基于Qt的图像处理技术和算法

    https://blog.csdn.net/silangquan/article/details/41008183

随机推荐

  1. Oracle 23ai TPC-H 执行情况

    TPC-H是一个广泛使用的基准测试,用于评估数据库系统在决策支持系统(DSS)场景下的性能. 在昨天的文章中,我们完成了<Oracle 23ai TPC-H 测试环境部署>,本文将继续记录 ...

  2. Selenium KPI接口 窗口句柄

    应用场景: 当单击主页上的链接时,将打开一个新窗口.在新打开的窗口中,无法执行任何操作,因为焦点仍然在主页Web驱动程序上. 这时候,我们需要把焦点定位到新打开的页面上. 先获取所有窗口a=drive ...

  3. go minio 设置访问权限

    bucket 权限 桶默认可以有三种 Access Policy 策略:public.custom.private. public:不经过任何认证可以直接访问资源 custom:自定义策略 Acces ...

  4. Django项目如何配置日志文件信息

    1.以dict的方式配置在settings.py中 # 日志文件简单配置 ''' LOGGING = { "version": 1, "disable_existing_ ...

  5. .NET 环境下的三维渲染库 HelixToolkit.SharpDX

    1. 引言 在 .NET 生态系统中,三维渲染一直是开发者面临的一个挑战.虽然 WPF 提供了基础的 3D 渲染支持,但性能和功能都较为有限.而 HelixToolkit.SharpDX 作为一款基于 ...

  6. Windows下PostgreSQL设置远程连接以及备份和恢复数据库

    一.设置远程连接 修改安装路径下的postgresql.conf,定位到listen_address  = '*',确保其值为'*'(Windows下默认是这样的,可不用修改) 修改安装路径下的pg_ ...

  7. HTTP压缩的过程

      1. 浏览器发送Http request 给Web服务器,  request 中有Accept-Encoding: gzip, deflate.(告诉服务器浏览器支持gzip压缩) 2. Web服 ...

  8. 【VMware VCF】启动和关闭 VMware Cloud Foundation 环境的正确顺序。

    为了避免出现数据丢失以及保证 SDDC 组件的正常运行,启动和关闭 VMware Cloud Foundation 环境中的组件应该遵循特定的顺序.比如,在关闭管理工作负载域之前,应该先关闭 VI 工 ...

  9. [每日算法 - 华为机试] leetcode680. 验证回文串 II

    入口 力扣https://leetcode.cn/problems/valid-palindrome-ii/submissions/ 题目描述 给你一个字符串 s,最多 可以从中删除一个字符. 请你判 ...

  10. 比cat更好用的命令!

    大家好,我是良许. 作为程序员,大家一定对 cat 这个命令不陌生.它主要的功能就是用来显示文本文件的具体内容. 但 cat 命令两个很重大的缺陷:1. 不能语法高亮输出:2. 文本太长的话无法翻页输 ...