项目地址:
CodeChina kissDicomViewer
详细介绍:
CSDN 一个简单的 DICOM 浏览器


仿照小蚂蚁实现 sharpen smooth Edge Emboss

  小蚂蚁有个功能是ImageFilters,模仿小蚂蚁也简单实现了一下。为了方便学习以及后续调整做成插件的形式。下边展示是小蚂蚁的四种Filters和自己目前实现的。利用了QtQtPlugin,如果对前处理结果不满意直接修改插件即可。

实现方法

  图像前处理思路就是每次再界面上刷新图片时调用一个模板函数QPixmap(const QPixmap &, QWidget *),实现最后渲染不同效果。

sharpen smooth Edge Emboss实现的话直接用的现成API

QPixmap Sharpening(const QPixmap &pix, QWidget * ) {QImage image;image = pix.toImage();cv::Mat src = QImage2cvMat(image.convertToFormat(QImage::Format_ARGB32));cv::Mat dst;cv::Mat kern = (cv::Mat_<char>(3, 3) <<0, -1, 0,-1, 5, -1,0, -1, 0);filter2D(src, dst, src.depth(), kern);image = Mat2QImage(dst);return QPixmap::fromImage(image);
}QPixmap Smooth(const QPixmap &pix, QWidget * ) {QImage image;image = pix.toImage();cv::Mat src = QImage2cvMat(image.convertToFormat(QImage::Format_ARGB32));cv::Mat dst;GaussianBlur(src, dst, cv::Size(7, 7), 0, 0);image = Mat2QImage(dst);return QPixmap::fromImage(image);
}QPixmap Edge(const QPixmap &pix, QWidget * ) {QImage image;image = pix.toImage();cv::Mat src = QImage2cvMat(image.convertToFormat(QImage::Format_ARGB32));cv::Mat dst;//cv::Mat src_gray, detected_edges;dst.create(src.size(), src.type());dst = cv::Scalar::all(0);if (src.channels() != 1) {cvtColor(src, src_gray, cv::COLOR_BGR2GRAY);    // 转换灰度图像} else {src_gray = src;}blur(src_gray, detected_edges, cv::Size(3, 3));cv::Canny(detected_edges, detected_edges, 3, 3 * 3, 7);src.copyTo(dst, detected_edges);//image = Mat2QImage(dst);return QPixmap::fromImage(image);
}QPixmap Emboss(const QPixmap &pix, QWidget * ) {QImage image;image = pix.toImage();cv::Mat src = QImage2cvMat(image.convertToFormat(QImage::Format_ARGB32));cv::Mat dst;cv::Mat kern = (cv::Mat_<char>(3, 3) <<-2, -1, 0,-1, 1, 1,0, 1, 2);filter2D(src, dst, src.depth(), kern);image = Mat2QImage(dst);return QPixmap::fromImage(image);
}

插件设计

  KISS Dicom Viewer:插件实现方法

【OpenCV】仿照小蚂蚁实现图像增强、滤波相关推荐

  1. opencv 一种灰度图像增强方式

    opencv 取灰度图颜色范围 opencv有自己的图像增强函数,这里提出一种定义范围颜色的增强方式, 下面是opencv自带直方图增强的函数,equalizeHist,如果需要三通道增强,可以分别取 ...

  2. OpenCV入门系列 —— boxFilter盒子滤波

    OpenCV入门系列 -- boxFilter盒子滤波 前言 程序说明 输出结果 代码示例 总结 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领域的应用和重要程度也同步激增(识 ...

  3. 《OpenCv视觉之眼》Python图像处理五 :Opencv图像去噪处理之均值滤波、方框滤波、中值滤波和高斯滤波

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  4. OpenCV入门系列 —— bilateralFilter双边滤波

    OpenCV入门系列 -- bilateralFilter双边滤波 前言 程序说明 输出结果 代码示例 总结 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领域的应用和重要程度也 ...

  5. matlab中的中值滤波medfilt2()和opencv中的中值滤波medianblur()是不同的

    matlab中的中值滤波medfilt2()和opencv中的中值滤波medianblur()做出的结果不同,如图所示: Opencv处理结果如下: Matlab处理结果如下: Opencv处理过程中 ...

  6. OpenCV,马赛克 常用图像增强算法的实现

    import cv2 import numpy as npdef salt(img, img2, n):noff = int((n - 1) / 2)for i in range(noff,img.s ...

  7. 使用Python+OpenCV+GAN实现车牌图像增强

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|AI算法与图像处理 在好莱坞的犯罪电影中,我们经常看到侦 ...

  8. opencv(4)图像滤波

    都是一些常用函数,但是可能太常用了,里面的一些关键点,没做过多的研究,今天主要对函数中特殊的地方做出分析 1.cvSmooth  图像滤波 CV_BLUR_NO_SCALE (简单不带尺度变换的模糊) ...

  9. 【OpenCV】5种图像滤波辨析:方框、均值、高斯、中值、双边

    from:http://www.07net01.com/2015/12/1003192.html 图像滤波 什么是图像滤波 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预 ...

最新文章

  1. linux docker 权限划分介绍 capabilities
  2. 关于选择哪些村庄试点新农村建设的讨论
  3. 把知识变成图谱一共需要花几步?89页全网最全清华知识图谱报告-学习笔记
  4. php开启openssl的方法
  5. Python是什么?Python能干什么?一篇文章让你对Python了如指掌!!
  6. 图论 —— 图的连通性 —— Tarjan 求割点与桥
  7. 95-50-040-java.nio.channels-NIO-NIO之Buffer(缓冲区)
  8. mmapcopy函数的编写
  9. 杀死提交的hadoop任务
  10. html语义化标签_9.28晨会分享 常见的HTML5语义化标签、实体字符
  11. 通信中间件 Fast DDS 基础概念简述与通信示例
  12. 锐捷云终端计算机,锐捷RG-RCM1000-Office智能云终端控制器
  13. 小程序生命周期钩子函数
  14. 普元EOS常见问题及处理经验
  15. JAVA计算机毕业设计大学生旅游拼团网站Mybatis+源码+数据库+lw文档+系统+调试部署
  16. COMSOL 固体力学 第一主应力、第二主应力、第三主应力、径向应力、环向应力、切向应力 截面一维曲线
  17. OV7670 FIFO 30W摄像头介绍(三) --- STM32F103驱动OV7670代码介绍
  18. 【Unicode编码表】UniCode编码表+转化器
  19. prince2 成功的项目管理_学员心得 | 宋文彬:学习PRINCE2的心路历程
  20. 【杂】孔明锁6根解法 九连环的拆卸方法及还原

热门文章

  1. 华为鸿蒙系统升级完成,华为鸿蒙系统完成华丽转身,迎来重大更新
  2. NVML查询显卡信息
  3. shell 检测文件是否存在
  4. matlab平面电磁波入射_平面电磁波传播模拟-MATLAB程序
  5. alignment fault
  6. 电子发热手套方案开发控制板线路板方案设计pcba
  7. UI设计师未来的4个发展方向
  8. div向左、向右移动的动画效果
  9. 《JAVA编程思想》中暗藏的设计模式
  10. STC32G12K128-Beta WS2812控制 RGB与HSV互相转换