图像处理
文章平均质量分 57
gloomyfish
OpenCV开发骨灰级工程师!一间方格熬岁月,青丝半落写无相;不曾回首指尖累,神游沧海渡此生!
展开
-
自定义QT QWidget对象响应弹出菜单的解决方法
说真话,以前都不是自定义控件上用,一直没问题,然后我自定义了一个绘图的Canvas,继承自QWidget,想添加右键鼠标弹出菜单,于是遇到两个坑爹的错误!为了节省大家时间,直接看错误就好!无法跟信号槽方法链接错误信息:qobject::connect: no such slot xxxx其中xxx表示方法名称!原因是自定义的类没有添加 Q_OBJECT,如果有看看是否添加了对应的方法,跟绑定声明:connect(markBin, SIGNAL(triggered()), this, SLOT(原创 2021-10-12 15:09:56 · 694 阅读 · 0 评论 -
详解OpenVINO 模型库中的人脸检测模型
人脸检测模型OpenVINO的模型库中有多个人脸检测模型,这些模型分别支持不同场景与不同分辨率的人脸检测,同时检测精度与速度也不同。下面以OpenVINO2020 R04版本为例来逐一解释模型库中的人脸检测,列表如下:从列表中可以看出骨干特征网络主要是MobileNetv2与SqueezeNet两种支持实时特征网络,ResNet152是高精度的特征网络,检测头分别支持SSD、FCOS、ATSS。MobileNetv2版本的模型结构深度可分离卷积ResNet网络残差网络模型在2015年提出,原创 2020-10-19 10:19:57 · 2040 阅读 · 2 评论 -
全程实操 | 最新版OpenCV4.4免费视频课程送给大家
Hello,大家好!今天我想告诉大家一个好消息,【OpenCV4.x C++快速入门视频教程】 免费学了。整个课程一口气录完,全程实操,代码教学,保证了原汁原味的OpenCV学习,绝对无剪切,讲师基本功深厚,在线写在线运行,一步一步带你入门OpenCV4.x,是上乘的良心之作。怎么看, B站搜索 【OpenCV学堂】 即可,或者扫码真的,我把多年OpenCV开发与教学经验,认真汇总与总结提炼出了这门课程,目标是帮助更多应用开发者、OpenCV爱好者、计算机视觉开发感兴趣的人走好入门OpenCV框架开发原创 2020-08-10 19:16:37 · 2329 阅读 · 5 评论 -
图像放缩之临近点插值
一:数学原理当一幅二维数字图像从源图像N*M被放为(j*N) * (k*M)目标图像是,参照数学斜率计算公式必然有:(X1 – Xmin)/(Xmax - Xmin) = (Y1 - Ymin)/(Ymax-Ymin) 当Xmin 和 Ymin均为从零开始的像素点时,公式可以简化为: X=Y1 (Xmax/Ymax) 对于任意一幅源图像来说,假设放大原创 2011-10-26 14:50:30 · 15206 阅读 · 20 评论 -
图像放缩之双线性内插值
一:数学原理在临近点插值的数学基础上,双线性插值,不是简单copy源像素的值,而是获取四个最邻近目标像素的像素值乘以权重系数,简单的数学公式可以表示为:D(x, y) = S(j, k) * a + S(j+1, k) *b + S(j+1,k+1) * c + S(j, K+1) * d 公式一 问题转化如何提取源像素的中四个临近点,根据临近点插值中从原创 2011-10-28 17:03:40 · 24936 阅读 · 8 评论 -
图像放缩之双立方插值
图像放缩之双立方插值一:数学原理如果已知一个函数f(x)以及它在x=0,x=1处的导数,那么函数可以在[0,1]之间插值,当函数表达为三次多项式时我们称之谓立方插值。一个三次多项式及其导数: f(x) =ax^3 +bx^2 + cx + d f’(x)=3ax^2 + 2bx +c多项式在x=0, x=1处值及其导数值为:原创 2011-10-30 22:57:41 · 17281 阅读 · 21 评论 -
图像处理之颜色梯度变化 (Color Gradient)
有过UI设计经验的一定对2D图形渲染中的Color Gradient 或多或少有些接触,很多编程语言也提供了Gradient的接口,但是想知道它是怎么实现的嘛? 本文介绍三种简单的颜色梯度变化算法,就可以很容易实现常见的梯度变化算法三种都要求提供两个参数即起始颜色RGB值, 最终颜色RGB的值。 垂直梯度颜色变化,效果如下: 水平梯度颜色变化,效果如下:原创 2011-11-27 08:20:20 · 15231 阅读 · 0 评论 -
图像处理之透明混合 - Alpha Blending效果
基本原理:图像的透明混合有个专属名词– Alpha Blending 对任意两张图像可以合成为一张图像,合成图像的像素取值根据数学公式:RGB3 = (1- a) * RGB1 + a * RGB2其中a为混合透明度取值范围[0, 1]之间, RGB3为目标像素值, RGB1与RGB2的值分别来自两张不同的图像。两张源图像分别为:第二张源图像是房屋设原创 2011-11-09 22:15:22 · 13193 阅读 · 0 评论 -
图像处理之噪声之美 - 随机噪声产生
数学原理:首先看两张图片,大小均为256 * 256个像素, 第一张是纯蓝色图一:第二张是加有随机噪声的蓝色 图二:产生随机噪声的算法简单的不能再简单了假设RGB的R与G颜色分量均为零, 则 Blue = 255 * Math.Random() 随机数的取值范围在[0, 1]之间, 程序的核心代码如下:for(int row=0; row原创 2011-11-12 20:35:47 · 7308 阅读 · 3 评论 -
图像处理之图像加噪
图像噪声源于现实世界中数字信号总会受到各种各样的干扰,最终接受的图像和源于的数字信号之间总是存在一定的差异,对于图像噪声,使用均值滤波和中值滤波来消除图像噪声的做法已经是很常见的图像消噪手段。 一:图像加噪原理1. 椒盐噪声(Salt And Pepper Noise)椒盐噪声是一种因为信号脉冲强度引起的噪声,信噪比(Signal NoiseRate)是衡量图像噪声原创 2012-01-06 15:53:38 · 33348 阅读 · 10 评论 -
超纯超美的曲线(Peter De Jong Attractor)
无意之中在网上看到一篇基于HTML5 Demo的Peter De Jong 吸引子生成图像的Demo,没Hold住,感觉太漂亮了。于是想研究一下,发现有个专业术语 - 分形。一位大师这样评价分形学科 - “it is not about math, it is about art” 显然有时候程序员也是有点艺术细胞。效果图一效果图二效果图原创 2012-01-13 13:56:46 · 6257 阅读 · 5 评论 -
图像处理之快速均值模糊(Box Blur)
图像处理之快速均值模糊(Box Blur) 图像模糊的本质, 从数字信号处理的角度看,图像模糊就要压制高频信号保留低频信号,压制高频的信号的一个可选择的方法就是卷积滤波。选择一个低频滤波器,对图像上的每个像素实现低频滤波,这样整体效果就是一张数字图像更加的模糊,显示更少的细节信息。 传统的卷积模糊计算量巨大,程序效率比较低,基于滑动窗口的Box Blur是一种快速模糊方法,原创 2012-01-14 19:25:51 · 22391 阅读 · 20 评论 -
柏林噪声产生火焰等纹理
柏林噪声是一种特殊的随机噪声,即对于每个给定的值产生的随机数是唯一的,但是不同的值产生不同的随机数。关于柏林噪声更详细的解释可以参考这里:http://freespace.virgin.net/hugo.elias/models/m_perlin.htm 本文主要是探讨如何使用柏林噪声产生火焰效果与乌云效果的纹理,在解释实现代码之前,首先来看一下影响柏林噪声效果的两个参数音度(原创 2012-01-30 22:28:48 · 10463 阅读 · 14 评论 -
图像处理之高斯模糊
高斯模糊是一种两维的卷积模糊操作,在图像完成高斯模糊相对于均值模糊来说,计算量会增加,但是高斯模糊可以实现一些特殊效果,特别是在图像噪声(非椒盐噪声)消去方面,更是有着非常好的效果。一维高斯公式如下:其中x是制定[-n,n]范围的整数,sigma代表标准方差。通常取值为1. 一维高斯函数Java代码如下: private float[] get1DKernalDat原创 2012-02-05 14:51:15 · 31362 阅读 · 29 评论 -
图像处理之移动模糊
- created by gloomyfish卷积模糊或者卷积平滑滤波,可以消除图像噪声,也可以产生一些常见的图像模糊特效,但是移动模糊特效也是基于卷积,相比于Box Blur, Gaussian Blur的算法,移动模糊只需要完成一次的一维卷积,所不同的是一维卷积的完成,要基于一定的角度,而不是只是在水平和垂直两个方向上。移动模糊的一维卷积要考虑一下三个因素:原创 2012-02-12 22:33:27 · 6082 阅读 · 7 评论 -
图像处理之光束效果
图像处理之光束效果原理:光束滤镜,对一幅图像完成光束效果,好似有一束光从图像本身激发出来,按照一定的角度散发开来,光束滤镜是一种图像叠加效果,首先要借助于之前的完成的移动模糊滤镜,将一幅图像按照一定的阈值二值化以后,加以移动模糊滤镜,将移动模糊之后的图像和原图像叠加就产生了光束滤镜效果。 对光束滤镜而言,其最终效果除了移动模糊的三个参数以外,还取决于以下两个参数:a原创 2012-02-16 21:38:39 · 5311 阅读 · 2 评论 -
图像处理之应用卷积一实现噪声消去
讨论如何使用卷积作为数学工具来处理图像,实现图像的滤波,其方法包含以下几种,均值滤波,中值滤波,最大最小值滤波,关于什么是卷积以及理解卷积在图像处理中作用参见这里–http://blog.csdn.net/jia20003/article/details/7038938 均值滤波:均值滤波,是图像处理中最常用的手段,从频率域观点来看均值滤波是一种低通滤波器,高频信号将会去掉原创 2012-02-25 22:41:11 · 12217 阅读 · 27 评论 -
图像处理之简单数字水印 - 文字轧花效果
图像处理之文字轧花效果- 简单数字水印 @ gloomyfish首先看一下效果,左边是一张黑白的文字图像,右边是混合之后的数字水印效果 实现原理主要是利用位图块迁移算法,首先提取文字骨架,宽度为一个像素。然后将提取的骨架,按照一定的像素值填充到目标图像中即可。关于位图块迁移算法说明请看这里:http://en.wikipedia.org/wiki/Bit_blit原创 2012-03-09 23:18:46 · 5646 阅读 · 1 评论 -
图像处理之应用卷积– 轧花与边缘检测
关于什么是卷积,如何理解卷积 参见这里:http://blog.csdn.net/jia20003/article/details/7038938一:轧花轧花算子(embossfilter)对一幅数字图像一阶微分结果即可得到轧花效果,根据不同的算子,轧花又可以分为凹效果与凸效果两种。两个个最简单的轧花算子为:轧花算子又称为双极性算子,1对图像的贡献意味着平滑,-1对原创 2012-03-18 11:17:48 · 6528 阅读 · 0 评论 -
图像处理之边缘褪化效果
图像处理之边缘褪化效果 很多图像处理软件都提供边缘褪化效果滤镜,其实原理非常的简单,网上搜索了一把,实现了基于Java的图像边缘褪化效果。边缘褪化效果取决于以下三个参数:1. 设定的图像边缘宽度2. 褪化比率– 其实质是图像融合的百分比数3. 选择的边框颜色 主要原理是计算图像中的像素点到中心点的距离,对边缘像素根据褪化比率与选择的原创 2012-04-03 21:15:30 · 3889 阅读 · 0 评论 -
图像处理之调整亮度与对比度
图像处理之调整亮度与对比度 很多时候,一张图像被过度曝光显得很白,或者光线不足显得很暗,有时候背景跟图像人物也观察不清楚,这个时候可以通过调节图像的两个基本属性-亮度与对比度来获得整体效果的提升,从而得到质量更高的图片。 基本原理:图像亮度本质上图像中每个像素的亮度,每个像素的亮度本质上RGB值的大小,RGB值为0是像素点为黑色,RGB都为255时像素点最亮,为白色原创 2012-03-22 22:23:31 · 44888 阅读 · 20 评论 -
基于像素的皮肤检测技术
基于像素的皮肤检测技术介绍一种基于颜色空间的皮肤检测技术,可以检测亚洲人种与白人的皮肤,皮肤检测人脸识别的基础,也是很多人像识别技术的基础操作,在实际应用中还是非常有用的。 基于像素的皮肤检测主要是寻找正确的颜色空间几何,图像处理中,常见的颜色空间有如下几种1. RGB色彩空间 – R代表单色红,G代表单色绿,B代表单色蓝2. HSV色彩空间 – H原创 2012-04-13 23:15:09 · 6186 阅读 · 1 评论 -
图像分析之直方图分析
图像分析之强度直方图分析直方图介绍强度直方图图形化显示不同的像素值在不同的强度值上的出现频率,对于灰度图像来说强度范围为[0~255]之间,对于RGB的彩色图像可以独立显示三种颜色的强度直方图。强度直方图是用来寻找灰度图像二值化阈值常用而且是有效的手段之一,如果一幅灰度图像的直方图显示为两个波峰,则二值化阈值应该是这两个波峰之间的某个灰度值。同时强度直方图是调整图像对比度的原创 2012-04-22 21:36:19 · 36662 阅读 · 18 评论 -
图像特效之三角几何应用
一:基本的三角函数知识同样根据a, b的值可以计算出角度θ值,称之为反三角函数,角度θ=atan2(a, b)图像处理中应用三角函数常常把中心点设置为A点,任意像素点B到A的距离可以根据三角函数来计算得出,常见的计算模型如下:对待求像素点加以一定三角函数变化,可以实现很多意想不到的图形特效,中心像素点可以通过以下计算获得int centerX = wid原创 2012-05-10 22:44:57 · 4123 阅读 · 5 评论 -
图像处理之一阶微分应用
图像处理之一阶微分应用一:数学背景首先看一下一维的微分公式Δf = f(x+1) – f(x), 对于一幅二维的数字图像f(x,y)而言,需要完成XY两个方向上的微分,所以有如下的公式:分别对X,Y两个方向上求出它们的偏微分,最终得到梯度Delta F.对于离散的图像来说,一阶微分的数学表达相当于两个相邻像素的差值,根据选择的梯度算子不同,效果可能有所不同,但是基本原理原创 2012-05-13 13:18:45 · 22668 阅读 · 5 评论 -
图像处理之像素格效果
图像处理之像素格效果图像中的像素格效果是最常见的图像特效,可以隐藏或者模糊一些不想被显示出来的图像细节,是常用的图像处理手段。 像素格效果的算法其实非常的简单,只是对图像进行块扫描,求出每个像素块的平均RGB值,然后赋值到块中的每个像素点,最后输出处理以后的图像,而像素块的扫描有点类似卷积的处理。具体算法步骤如下:1. 按照从左到右,自上而下的顺序,扫原创 2012-05-31 06:13:40 · 5828 阅读 · 1 评论 -
连通组件标记算法–算法修正版
连通组件标记算法–算法修正版昨天使用自己修改的连通组件标记算法代码去对一个稍微复杂点的图片做皮肤的最大连通区域识别,发现Java报了栈溢出错误,自己想了想,感觉是合并标记时其中一段递归的代码的问题,修改为非递归以后,运行结果吓我一跳,发现更加的不对,最后发现原来我读取标记时候使用了逻辑操作符&,导致标记超过255时候被低位截取。为了找到这个错误,花了一个下午的时间重新完成了代码原创 2012-06-03 18:00:29 · 5723 阅读 · 3 评论 -
图像处理之二值膨胀及应用
图像处理之二值膨胀及应用基本原理:膨胀是图像形态学的两个基本操作之一,另外一个是腐蚀操作。最典型的应用是在二值图像中使用这两个基本操作,是很多识别技术中重要的中间处理步骤。在灰度图像中根据阈值同样可以完成膨胀与腐蚀操作。对一幅二值图像f(x,y)完成膨胀操作,与对图像的卷积操作类似,要有个操作数矩阵,最常见的为3X3的矩阵,与卷积操作不同的,是如果矩阵中的像素点有任意一个点原创 2012-05-16 21:59:04 · 8682 阅读 · 9 评论 -
图像分析之连通组件标记算法
图像处理之连接组件标记算法 连接组件标记算法(connected component labeling algorithm)是图像分析中最常用的算法之一,算法的实质是扫描一幅图像的每个像素,对于像素值相同的分为相同的组(group),最终得到图像中所有的像素连通组件。扫描的方式可以是从上到下,从左到右,对于一幅有N个像素的图像来说,最大连通组件个数为N/2。扫描是基于每个像素单原创 2012-04-20 23:49:25 · 6032 阅读 · 2 评论 -
图像处理之二值腐蚀
图像处理之二值腐蚀概述:腐蚀是图像形态学的两个基本操作之一,另外一个是膨胀(Dilate)。二值图像上的腐蚀是腐蚀最典型的运用,但是腐蚀操作同样可以运用于灰度图像。二值图像腐蚀操作最基本的效果是腐蚀图像中前景色区域的边缘。使得前景图像区域变小,前景图像内部的背景区域被放大。 基本原理:腐蚀操作要求有待处理的2D图像F(x,y)以及操作数矩阵(类似卷积操作中的Kernel原创 2012-05-19 12:39:21 · 20063 阅读 · 10 评论 -
二叉树递归分形,牛顿分形图案
1. 牛顿分形(Newton Fractal)在复数域上使用牛顿迭代生成分形图像,函数公式F(z) = z^3 – 1在复数域上面有三个根,一个是1,另外两个分别是复数-0.5+0.87i 与 -0.5 – 0.87i根据计算出来根的值不同转换为RGB三种不同的颜色,根据迭代次数的多少设置颜色值的大小,即颜色强度。2. 曼德布罗特集合分形(Mandelbort Set原创 2012-06-07 07:37:04 · 8780 阅读 · 2 评论 -
图像处理之简单脸谱检测算法(Simple Face Detection Algorithm)
图像处理之简单脸谱检测算法(Simple Face Detection Algorithm)介绍基于皮肤检测之后的,寻找最大连通区域,完成脸谱检测的算法。大致的算法步骤如下:原图如下:每步处理以后的效果:程序运行,加载选择图像以后的截屏如下:截屏中显示图片,是适当放缩以后,代码如下: Image scaledImage =原创 2012-05-23 23:09:53 · 9132 阅读 · 1 评论 -
图像处理之简单综合实例(大米计数)
图像处理之简单综合实例(大米计数)一位网友给我发了几张灰度图像,说是他们单位的工业相机拍摄的,画质非常的清楚,他们单位是农业科研单位,特别想知道种子的数量,他想知道的是每次工业相机拍摄种子图片中有多少颗粒种子,想到了用图像处理的办法解决他们的问题,看了他给我照片,以大米种子为例。实现了一个简单的算法流程,可以得到种子的数目。大致算法分为以下三个步骤:1. 将灰原创 2012-05-26 23:13:36 · 11939 阅读 · 2 评论 -
五种基于RGB色彩空间统计的皮肤检测算法
最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于机器学习的算法,本人总结了五种RGB色彩空间的统计算法源码如下:Skin Filter1:public class SkinFilter1 extends AbstractBuffe原创 2012-06-26 22:22:27 · 7867 阅读 · 1 评论 -
图像处理之水纹效果
主要思想:主要是利用三角正弦函数与余弦函数的变换效果,完成对像素的位移变换,产生水纹效果,因为自然界中的水纹多少都是正弦波或者余弦波的叠加效果。参数解析:支持两个输入参数设置,一个是波长,表示像素位移的多少,另外一个是周期表示正弦或者余弦函数的在像素中的变换周期。关键程序解析:计算位移与周期变化代码如下:xoffset = (int)((double)wave *原创 2012-07-09 21:22:02 · 6066 阅读 · 1 评论 -
图像处理之开操作详解
开操作概述:图像处理中的开闭运算是两个非常重要的数学形态学操作,它们同时都继承自基本的腐蚀与膨胀操作,这些操作一般都会应用在二值图像的分析与处理上。开操作有点像腐蚀操作,主要是会remove前景像素边缘,但是不会像腐蚀操作remove那么多边缘像素。开操作主要是用来保留某种结构操作,remove其他不符合结构元素的前景区域像素。 开操作原理:一个开操作是一个腐蚀操作再接原创 2012-07-01 19:11:14 · 11967 阅读 · 1 评论 -
图像处理之双边滤波效果(Bilateral Filtering for Gray and Color Image)
图像处理之双边滤波效果(Bilateral Filtering for Gray and Color Image)基本介绍:普通的时空域的低通滤波器,在像素空间完成滤波以后,导致图像的边缘部分也变得不那么明显,整张图像都变得同样的模糊,图像边缘细节丢失。双边滤波器(ABilateral Filter)可以很好的保留边缘的同时消除噪声。双边滤波器能做到这些原因在于它不像普通的高斯/卷原创 2012-07-12 15:52:08 · 24797 阅读 · 11 评论 -
图像处理之应用篇-大米计数续
图像处理之应用篇-大米计数续背景介绍:请看博客文章《图像处理之简单综合实例(大米计数)》其实拍出来的照片更多的是含有大米颗粒相互接触,甚至于有点重叠的照片要准确计算大米的颗粒数非常困难,通过图像形态学开闭操作,腐蚀等手段尝试以后效果不是很好。最终发现一种简单明了但是有微小误差的计数方法。照相机图片:算法思想:主要是利用连通区域发现算法,发现所有连通区域,原创 2012-07-17 23:19:54 · 7091 阅读 · 2 评论 -
图像处理之相似图片识别(直方图应用篇)
图像处理之相似图片识别(直方图应用篇)算法概述:首先对源图像与要筛选的图像进行直方图数据采集,对采集的各自图像直方图进行归一化再使用巴氏系数算法对直方图数据进行计算,最终得出图像相似度值,其值范围在[0, 1]之间0表示极其不同,1表示极其相似(相同)。 算法步骤详解:大致可以分为两步,根据源图像与候选图像的像素数据,生成各自直方图数据。第二步:使用第一步输出的原创 2012-07-22 00:31:32 · 54160 阅读 · 62 评论 -
图像处理之仿画笔效果一
图像处理之仿画笔效果一仿画笔效果最终完成自动完成从一张RGB图像到手工油画效果根据设定好的几个基本参数,本文章解释算法的前半部分。完整的算法介绍参见这里:http://lvelho.impa.br/ip/papers/npar2000.pdf StrokeAreas本文的算法主要是通过输入像素计算Color Difference与moment值得到输出像素从而得到图像上的画原创 2012-08-12 20:40:37 · 6301 阅读 · 12 评论