图像处理相关
文章平均质量分 59
图像处理相关算法
m_buddy
大表哥,还有大招吗... PS:本人所有文章均免费公开,任何收费条目请咨询平台
展开
-
Brief Summary of Bokeh Effect Rendering
1. 前言在现有一些厂商的人像背景虚化效果中,能够明显看到其是对人像进行了分割,之后再单独将背景进行虚化,最后将人像区域与虚化之后的背景融合起来(这里面需要处理很多画质相关的细节问题)。其效果在目前看来已经有了较大的进步,下图是最新发布的VIVO X70处理出来的虚化结果(注:图片来源于网络,侵删):可以看到其参照莱卡相机的虚化效果,对应对输入的图像进行虚化处理,这样的效果在外行人看来已经像那么回事了(尽管还会存在一些badcase,但是相信明天会更好。。。)。单反相机拍摄的背景虚化效果一直是手机相原创 2021-09-23 23:05:10 · 624 阅读 · 0 评论 -
《Side Window Filtering》论文笔记
1. 概述导读:滤波器是图像处理中常用的算子,具有保边属性的滤波器在某场景下是极具使用价值的。这篇文章提出了一种保边滤波算法,它采用多向窗口设计,在滤波器的中心采用多个窗口计算值滤波值,之后argmin的形式对输出的值进行组合,从而得到最后的滤波结果。文章的方法简洁直接,可以在现有的滤波器基础上进行修改得到,具有良好的移植迁移特性。而且并不需要针对性设计额外的超参数,使得具良好的保边属性鲁棒性强。这篇文章主要关注的3种类型的图像边界情况见下图所示:上面图像边界中(x,y)(x,y)(x,y)处的原创 2021-08-01 10:47:46 · 495 阅读 · 0 评论 -
Matlab代码-遍历文件夹下所有指定格式的图像
1. 说明这里提供给大家两个函数,可以按照自己的需求调用相关的函数实现扫描文件夹(不扫描子文件夹)和扫描文件夹并扫描子文件夹。2. 只遍历当前文件夹% 函数功能:指定路径path下所有图像路径,不扫描子文件夹% path:查找的路径% file_mask:需要查找的文件类型,比如*.jpgfunction file_list = ScanDir(path, file_mask)file_pa原创 2017-12-14 21:17:31 · 4601 阅读 · 0 评论 -
图像分割指标及Matlab代码实现
1. 分割指标在完成图像分割任务之后需要对分割结果进行性能评估,一般采用的指标是IOU和假阳性率。例如看下面这幅分割对照图像 上面第三幅图中红色的是分割结果,绿色的是标记图像,黄色的是重叠区域。那么具体的评判是这样的 IOU: 假阳性率: 2. Matlab实现代码% 函数功能:计算两张图像的IOU% lable_img:输入的图像A,只包含0和255像素值的图像% res_原创 2017-12-14 21:36:55 · 27516 阅读 · 13 评论 -
感知哈希算法——Python实现
1. 前言现在手中只有一张图像需要在一个集合中去找到与之最相近的那一张,这个过程实际是一个匹配的过程,特别是在多模态医学图像中解决这样的问题是比较迫切的,今年试验了一种广泛使用的算法——感知哈希算法!具体的实验结果将在下文中给出。2. 算法原理step1:缩小图片尺寸 将图片缩小到8x8的尺寸, 总共64个像素. 这一步的作用是去除各种图片尺寸和图片比例的差异, 只保留结构、明暗等基本信息。原创 2017-12-24 20:54:30 · 6184 阅读 · 1 评论 -
基于OpenCV的BOW特征提取
1. 前言在OpenCV中使用SIFT特征提取算子进行特征提取是跟简单的事情了,通过调用API也就下面几行代码的事情cv::SiftFeatureDetector detector;std::vector<cv::KeyPoint> keypoint;detector.detect(image, keypoint); //image是需要进行特征提取的图像std::cout << "\ndet原创 2017-12-25 21:50:23 · 2749 阅读 · 0 评论 -
基于OpenCV封装官方Affine-SIFT源码
前言SIFT变换在OpenCV中已经集成好了,只需要几行代码就可以实现SIFT特征点的点检测。但是OpenCV中SIFT特征算子是基于刚性物体的特征点检测,对于柔性物体的特征点检测和后期的使用就不是很适用了,这就提到了基于Affine变换的ASIFT。 这篇文章使用ASIFT网站上提供的源码经过OpenCV提供图像数据输入,并且提供了调用的接口,给出了一个demo(VS2013 Win32工程)。原创 2018-01-03 13:25:23 · 2515 阅读 · 0 评论 -
ACE图像增强算法Opencv实现
1. 概述最近翻阅图像增强算法方面的文献,偶然中找到一篇博客是写的有关ACE图像增强算法的,算法的原理比较简单。本文章中使用到的基本计算方法也是从那篇文章中得到的,这里使用Opencv进行了简单的仿真,暴露出来的问题就是这个算法运算量相当大,特别是在运算窗口很大的时候。这里作为记录就直接贴代码了,有兴趣的可以去查看他的博客原文。2. 实现代码//**************************原创 2016-11-27 17:10:29 · 6614 阅读 · 4 评论 -
使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整
1. 前言为了能够在Labelme上对Dicom图像进行编辑,这里对python环境下Dicom文件的读取进行了研究。在Dicom图像中CT的窗宽窗位是一个很重要的概念,但是找了半天在pydicom中没有相关设置函数,这里跟DCMTK还不一样。但是可以根据两个tag得到CT图像的CT值,那就是(0028|1052):rescale intercept和(0028|1053):rescale s...原创 2018-04-25 15:03:01 · 19391 阅读 · 14 评论 -
脑部CT检查图像检查床去除算法
1. 前言对于脑部肿瘤的诊断通常会拍摄患者CT与MRI两种类型的图像,之后结合起来进行分析。但是CT图像中就会出现检查床的区域,首先来看CT扫描设备是什么样子的 可以在图中看到,在头部位置安装有固定头部的类似支架的东西,这个东西拍摄出来时什么样子呢?如下图所示: 可以看到头部两边是有两个长条形的区域的,这个就是检查床的影响。但是呢这个东西在实际的诊断过程中是没有价值的,要将它去除掉...原创 2018-05-24 11:21:55 · 4422 阅读 · 16 评论 -
高性能图像放大算法——waifu2x方法
1. 前言在前面的博客中介绍了hqx图像放大算法,其图像放大的效果是好于传统的双线性插值、三次插值算法的。但是在图像放大倍数较高的时候图像中的边缘还是存在锯齿的现象。但是其也有很明显的优点,那就是速度快。 在本文中主要讨论的是waifu2x方法。Reference论文:[1] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang, ...原创 2018-06-06 16:46:12 · 20963 阅读 · 3 评论 -
基于高斯混合模型(GMM)脑部肿瘤分割算法
1. 前言说到图像分割,首先想到的便是诸如OTSU算法、区域自动生长之类的传统算法。虽然,这些算法的实现原理各不相同,但是有以下的缺点 1. 分割算法没有很好的自动化能力,比如区域生长算法 2. 分割的结果并不是最适宜的区域,比如OTSU 针对这样的问题,这里给出一种基于统计分析模型的自动化肿瘤分割方法。思路见下面的叙述。2. 算法思路首先分析拿到一张肿瘤图像进行分析 ...原创 2018-05-31 12:48:03 · 3601 阅读 · 5 评论 -
高性能图像放大算法——hqx算法
1. 介绍hqx(”hq” 代表 “high quality”;”x” 代表放大倍数)算法准确来说是hqnx算法, 是Maxim Stepin开发的Pixel-art scaling algorithms算法之一。hqx有三个滤波器:hq2x、hq3x和hq4x,其放大倍数分别为2、3和4。 先来看下使用最邻近插值算法得到的放大结果: 然后再看看使用hq3x算法进行放大之后得到的结果...原创 2018-06-01 20:19:01 · 10352 阅读 · 0 评论 -
旋转文本图片校正算法
1. 前言在进行文本图像处理的时候,会发现某些拍摄的图像并不是正的,存在着某些旋转的情况。为了修正该图片就需要检测文本图像旋转的角度,再根据这个角度将图像旋转回正确的位置上来。 本博客讲到的算法是本人在github上无意看到的,经过亲自测试之后发现效果不错,这里将其整理为一个demo与大家进行分享。2. 实现代码""" Calculates skew angle """im...原创 2018-08-06 23:17:46 · 3168 阅读 · 7 评论 -
使OpenCV程序脱离本地OpenCV环境到其它电脑上运行
前言一般在编写图像处理软件的时候会用到OpenCV,而且在OpenCV程序代码调试完成之后就需要拿到别的电脑上去演示。由于演示用的电脑没有与编写代码机器一样的OpenCV环境就会造成出现这样的错误 这样的原因就是本有将OpenCV需要的DLL集合和程序当中。一般来讲解决这个问题有两种解决方案 1. 动态链接opencv,即把相应的dll拷贝到exe所在目录,然后一起拿到目标电脑上去运行 2原创 2017-11-05 11:46:11 · 6896 阅读 · 0 评论 -
DCMTK实现Dicom CT图片读取CT值图像
前言有些时候在对医学图像进行分割的时候,需要提取出一组感兴趣的区域(也就是在某一灰度值下的区域)。获得分割的图像的方法有很多了,比如OTSU方法。但是这些方法存在着分割毛刺和过分割的现象,因而从准确的度的角度去分割CT图像,就需要使用到Dicom图像了,既是使用CT值作为分割的依据。首先来看一个CT的脑部骨窗图像在这个图像中对骨头比较感兴趣,使用OTSU方法去获得它的一个分割阈原创 2017-08-21 16:52:39 · 11557 阅读 · 9 评论 -
图像相似性度量—— 归一化互信息实现
1. 概述归一化互信息是度量两张图片相似度的一种表达方式,它的值越大代表两张图片的相似性越高。通常用来作为图像配准中的评判准则或是目标函数。它在两幅图像的灰度级数相似的情况下有良好的配准精度,较高的可靠性;但是同时存在计算量大,实时性差的不足。注:这里的实现是基于Opencv2的。原理是分别计算图像A,B的信息熵,再计算联合的信息熵。然后代入公式计算归一化信息熵。这里的联合概率原创 2016-12-12 10:10:15 · 27740 阅读 · 5 评论 -
Opencv2实现平移、旋转、双线性差值放缩变换
1. 概述在本文中记录集中简单的几何变换的Opencv实现,对于不是依赖Opencv实现的也可以按照类似的写法完成移植,这些函数经过测试都是可以正常使用的。2. 实现图像的平移变换://************************************************************************// 函数名称: ImgMove//原创 2016-12-08 10:56:05 · 1247 阅读 · 0 评论 -
Opencv2函数cvfindcontours在MFC框架下程序运行失败问题
1. 概述最近利用Opencv的函数cvfindcontours查找一张图片的轮廓,基本的算法在Win32平台上正常运行没有问题,结果如下:但是很不幸的是当调试好算法之后要将这些代码,移植到MFC平台上是失败了,cvfindcontours这个函数返回的结果根本就不正确,自然而然的后面筛选轮廓也就报出了触发断点的错误,导致程序运行失败。2. 解决办法最后经过各种原创 2016-12-02 21:33:52 · 997 阅读 · 0 评论 -
限制对比度自适应直方图均衡化算法(CLAHE)实现
1. 概述本篇文章是基于这篇博文写的,然后经过粗略查看之后,将其运用到课题中,这里将此记录下来作为记录,文章中若有错误的地方敬请谅解。2. 实现代码bool CLAHE_Algorithm::CLAHE_Process(cv::Mat& src_img){ if (!src_img.data) { std::cout << "无图像数据" << endl; retur原创 2016-11-27 17:29:58 · 4382 阅读 · 9 评论 -
何教授去雾算法C++实现(调试)
前几日有幸拜读了何教授的一篇文章《Single Image Haze Removal Using Dark Channel Prior》的文章,结合最近接收的工作就像将去雾算法增强DCM图像。算法的基本思想并不复杂,详细的原理和推导大家可以参考大牛们的博客和何教授的论文原文。这里用几个公式概述算法的主题部分。首先对于暗通道的求取:Ω以x为中心的运算核,c是RGB三个通道。这个公原创 2016-07-26 20:22:57 · 1749 阅读 · 0 评论 -
解压缩读取Dicom图片(彩色)及显示
1. 前言在开发新课题的时候需要使用到Dicom的彩色图像,由于之前一直读取的是Dicom的灰度图像,然后也就惯性思维的使用读取灰度图像的方式去读取压缩过后的彩色图像,结果可想而知图片数据根本无法读取出来。然后经过痛苦的寻找,终于找到解压Dicom图像数据和读取显示的方法,本文将分享这个方法。测试图片2. 读取这里给出的方法是在之前的基础上进行修改的,这里就直接贴出代码,写得也比较原创 2016-11-10 16:56:13 · 11598 阅读 · 11 评论 -
利用DCMTK将DCM图像像素数据转换为Mat数据
附:1. 一个文件夹下的文件名导出到TXT在windows下进入目标文件夹,在文件夹窗口下按住Shift键,点击鼠标右键选择“在此处打开命令行窗口”,之后再Dos窗口下输入如下命令,将文件夹下的所有文件名保存到list.txt文件夹中。dir /b >list.txt原创 2016-07-11 17:26:18 · 5162 阅读 · 0 评论 -
多帧Dcm图片的读取与拆分存储
1. 概述在项目中为了保留对之前代码的兼容和加上新功能,需要将多帧的Dcm图像转换为单帧的Dcm图像,近期对其进行了实践。本篇文章中将实现的代码予以分享,不妥之处请见谅。多帧图像2. 实现代码之前有两篇博客分别讲了DCMTK在vs上配置过程和读取Dcm图的实现,感兴趣的读者可以看看之前的文章。//*****************************************原创 2016-11-28 15:41:30 · 9249 阅读 · 17 评论 -
Powell算法的原理与实现
1. 概述在研究课题中需要最优化多模态图像的互信息,引入的最优化算子便是Powell算子。Powell算子是一种有效的直接搜索方法,这种方法本质上是共轭方向法。Powell算子把整个计算过程分成若干个阶段,每一个阶段(一轮迭代)有n+1次一位搜索组成。在算法的每一阶段中,先依次沿着已知的n个方向搜索,得一个最好点,然后沿着本阶段的初点与该最好点连线方向进行搜索,求得这一阶段的最好点。在用最后的原创 2017-02-26 11:11:07 · 19479 阅读 · 16 评论 -
基于AForge的C#摄像头视频录制
1. 概述最近搞华为的CDN(-_-||-_-||-_-||),写东西的时间比较少了。最近由于兴趣学习了下在C#上使用AForge录制摄像头视频并压缩编码。总体上来说这个第三方.net视觉开发库还是比较稳定的(AForge lib下载、离线帮助文档下载)。但是由于这个第三方库维护不怎么样,导致会出现不兼容的问题。这里将这些与大家分享,希望对您有帮助。在使用AForge第三方库录制本地视频所原创 2017-03-16 11:46:22 · 22742 阅读 · 22 评论 -
图像相似性度量——互信息计算Matlab实现
前言之前写了一篇关于计算互信息的文章,基本的原理已经在那篇文章里面写出来了,这里就不在赘述了。在这片文章中将介绍采用的是直方图计算的方式,比之前的方法快了很多,软件的代码是Matlab实现的,这里贴出来与大家分享。1. 代码%将图像B经过几何变换之后再计算互信息%x:水平方向上的位移%y:垂直方向上的位移%ang:图像的旋转角度%A:参考图像%B:浮动图像function原创 2017-07-17 00:11:37 · 11791 阅读 · 2 评论 -
独立向量信号互信息计算——Matlab实现
引言信息熵公式:其中I(X)表示X的信息量p(xi)是xi发生的概率英文里面叫做probability mass function,一个随机产生的事件所包含的信息本体数量,只与事件发生的机率相关。事件发生的机率越低,在事件真的发生时,接收到的信息中,包含的信息本体越大。含义是概率为 0 的事件对应的信息大, 反之信息量少.取对数的原因是使得乘积变为求和。两个独立事件原创 2017-07-17 09:27:29 · 9381 阅读 · 13 评论 -
Matlab实现CT、MRI多模态图像配准
引言这里使用Matlab里面自带的函数进行图像配准,在配准之前设置好配准的参数,调用imregister()函数就可以得到配准的图像。1. 编码这里使用到的Matlab工具函数为moving_reg = imregister(moving,fixed,transformType,optimizer,metric)[moving_reg,R_reg] = imregister(mo原创 2017-07-23 15:32:34 · 15218 阅读 · 3 评论 -
基于图像原始像素信息的简单CT/MRI医学图像配准方法
1. 概述最近在处理图像配准方面的任务,初步接触医学图像配准,这篇文章讲述基于图像原始像素信息的简单配准方法。通过计算得到图像的重心、主轴方向使得图像能够定位到统一坐标系下。这种方法简单粗暴,不能实现精细的配准。图像重心的计算公式:图像主轴的计算方法:图像的主轴方向定义为协方差矩阵最大特征值对应的特征向量。2. 实现计算重心://**********原创 2016-12-08 11:41:15 · 7173 阅读 · 8 评论