Qt图像处理技术六:拉普拉斯锐化
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图像处理技术六:拉普拉斯锐化的更多相关文章
- 基础图像处理之混合空间增强——(Java:拉普拉斯锐化、Sobel边缘检测、均值滤波、伽马变换)
相信看过冈萨雷斯第三版数字图像处理的童鞋都知道,里面涉及到了很多的基础图像处理的算法,今天,就专门借用其中一个混合空间增强的案例,来将常见的几种图像处理算法集合起来,看能发生什么样的化学反应 首先,通 ...
- paper 109 :图像处理中的拉普拉斯算子
1.基本理论 拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性.一个二维图像函数 的拉普拉斯变换是各向同性的二阶导数,定义为: 为了更适合于数字图像处理,将该方程表示为离散形式: 另外 ...
- FPGA与数字图像处理技术
数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行 ...
- HTML5图形图像处理技术研究
摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...
- GDI+图形图像处理技术中Pen和Brush的简单使用和简单图形的绘制(C#)
1.Graphics Graphics对象是GDI+绘图表面,因此在Windows窗体应用程序中要使用GDI+创建绘图,必须要先创建Graphics.在给窗体注册一个Paint事件后,Graphics ...
- 数字图像处理技术在TWaver可视化中的应用
数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.常用的图像处理方法有图像增强.复原.编码.压缩等,数 ...
- php图形图像处理技术
图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...
- Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解
前话 Qt的图形视图框架,最核心的三个类为:QGraphicsScene.QGraphicsItem与QGraphicsView. 基于图形框架的高级白板软件Demo QGraphicsSce ...
- 基于Qt的图像处理技术和算法
https://blog.csdn.net/silangquan/article/details/41008183
随机推荐
- pnpm : 无法加载文件 \AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。
1. 安装pnpm npm install -g pnpm #安装 pnpm pnpm --version #查看pnpm版本 安装完成后查看版本时报错 pnpm : 无法加载文件 C:\Users\ ...
- NCS开发学习笔记-基础篇-前言
nRF5 SDK 与 nRF Connect SDK 目前Nordic有2套并存的SDK:老的nRF5 SDK和新的nRF Connect SDK(简称NCS),两套SDK相互独立. nRF5 SDK ...
- Python面向对象-反射
python面向对象-反射 在python的面向对象中,与用户交互的主要方式就是利用反射来判断用户输入的指令是否存在和可执行 反射的定义 在python中反射主要是应用于类的对象上,在运行时,将对象的 ...
- 玩three.js的一点心得
契机: 3-4月份,有机会再次学了一遍高数,然后再一次从二,三重积分的坑里爬来爬去,其中有个直观的问题一直困扰着我就是一个函数在空间坐标系上的图像,所以当时就打算学完这些之后,自己在5月份的时候用th ...
- 大模型基础补全计划(二)---词嵌入(word embedding)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 无 前言 本文是这个系列第二篇,它们是: &l ...
- 队列的内置模块(deque)--双向队列
博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from collections import deque q = deq ...
- google_hacking_study
简单了解一下Google Hacking语法. 这是goolehacking十个基本语法. ""完全匹配 据说匹配比较精准,但是我不加引号好像也没什么区别耶 *模糊匹配.?表示单个 ...
- Linux中查看进程状态信息
一.常用命令总结 ps -l 列出与本次登录有关的进程信息: ps -aux 查询内存中进程信息: ps -aux | grep *** 查询***进程的详细信息: t ...
- Netty源码—5.Pipeline和Handler
大纲 1.Pipeline和Handler的作用和构成 2.ChannelHandler的分类 3.几个特殊的ChannelHandler 4.ChannelHandler的生命周期 5.Channe ...
- 微服务架构的守护者:Redisson 分布式锁与看门狗机制实战指南
1. 分布式锁简介 1.1 什么是分布式锁 在单机应用中,可以使用 Java 内置的锁机制(如 synchronized.ReentrantLock 等)来实现线程间的同步.但在分布式环境下,由于应用 ...