• Qt QImage 图像处理(翻转,灰度,亮度)代码实现


    1.界面效果

    该程序利用QImage类对图片像素进行操作,实现图像的翻转,转灰度,增加亮度的效果。模拟图像处理效果背后的算法实现。后续可以陆续增加其他图像处理功能,可进一步扩展。
    在这里插入图片描述

    • 项目结构
      主要涉及一个图像处理类-QImageProcess
      在这里插入图片描述
      在这里插入图片描述
      可优化的空间:
    • .可以将图片加载的label封装为一个类,实现PaintEvent函数,利用update直接进行刷新提高效率。
    • 可以尝试将Qimage一行行读取像素为uchar*,再进行像素操作提高效率,节省内存空间以及拷贝的时间。
      在这里插入图片描述
    • scanlin官方解释:
      uchar QImage::scanLine(int i)
      Returns a pointer to the pixel data at the scanline with index i. The first scanline is at index 0.
      The scanline data is as minimum 32-bit aligned. For 64-bit formats it follows the native alignment of 64-bit integers (64-bit for most platforms, but notably 32-bit on i386).
      Warning: If you are accessing 32-bpp image data, cast the returned pointer to QRgb
      (QRgb has a 32-bit size) and use it to read/write the pixel value. You cannot use the uchar* pointer directly, because the pixel format depends on the byte order on the underlying platform. Use qRed(), qGreen(), qBlue(), and qAlpha() to access the pixels.
      See also bytesPerLine(), bits(), Pixel Manipulation, and constScanLine().

    2.图像处理的原理

    2.1 图像翻转

    • 包括水平镜像和垂直镜像
      在这里插入图片描述
      代码示例

    • 垂直翻转
      在这里插入图片描述
      == 效果==
      在这里插入图片描述

    • 水平翻转
      在这里插入图片描述

    • 效果
      在这里插入图片描述

    • 对角线翻转
      对角线翻转等于前两个翻转的叠加
      在这里插入图片描述

    • 效果
      在这里插入图片描述

    2.2 彩色图转变为灰度图

    • 原理:三通道彩色图转单通道灰度图的原理就是让单个像素的R,G,B值都相等。
      代码示例
      在这里插入图片描述
    • 效果
      在这里插入图片描述

    2.3 调整图像亮度

    • 原理:就是让图像像素的R,G,B都增加一个数值,增加后的数值在区间0~255范围内。
      代码示例
      在这里插入图片描述
    • 效果
      在这里插入图片描述

    3.主窗口代码

    • 初始化主窗口
      在这里插入图片描述
    • 初始化label,加载原始图片
      在这里插入图片描述
    • 连接信号与槽函数

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    助听器算法研究开发源码介绍
    elasticsearch6.x 数据的备份
    Java 中的 IO 流
    使用正则表达式判断连对的介绍
    java每日一记 —— List创建的方式判断
    壳聚糖-聚乙二醇-叠氮,叠氮-PEG-壳聚糖,Chitosan-PEG-N3
    SpringBootWeb项目启动时报错端口号被占,又找不到哪个项目启动后没关,解决办法如下:
    深度学习——Bounding Box预测
    vue组件的样式穿透 /deep/ ::v-deep的使用
    k线图分析法
  • 原文地址:https://blog.csdn.net/Wwc_code/article/details/126089305