OpenCV
文章平均质量分 81
Dwyane05
严肃认真,活波可爱。
展开
-
Qt5.6+OpenCV3.2实现rtsp流媒体播放
因为竞争对手有界面,所以我们也要做界面.................选择了qt做界面,毕竟Linux下可选的不多。OpenCV 用来处理视频流,还好不用处理音频,不然还要加上FFmpeg了。Qt使用QLabel显示图片,用定时器刷新。中间遇到了图像显示扭曲,和颜色不正确问题。OpenCV中颜色是BGR,Qt中是RGB 需要用cvtColor转换一下;另一点是QIm...原创 2019-04-16 15:49:38 · 4873 阅读 · 3 评论 -
OpenCV 颜色空间RGB 到HSI CMYK的转换 C++
从RGB 到HSI 的空间转换给定一幅RGB彩色格式的图像,每个RGB像素的H分量可用下式得到:其中等于饱和度分量由下式给出:强度分量下式得出:上式已假定RGB归一化到【0-1】,且角度是根据HSI空间的红轴来度量。色调可以用6.2-2的结果除以360度归一化到[0-1];如果RGB已经归一化到[0-1],那其他两个分量已经归一化到0-1了。...原创 2019-03-20 10:58:22 · 3462 阅读 · 1 评论 -
OpenCV 改变图片颜色 C++
将RGB颜色空间转换到Lab,修改一幅图像的颜色;/** color_transfer.cpp** Created on: May 21, 2018* Author: cui*/#include <opencv2/opencv.hpp>#include <opencv2/imgproc.hpp>using namespac...原创 2019-03-19 15:59:19 · 4688 阅读 · 1 评论 -
频率域滤波步骤小结
频率域滤波步骤小结1、给定一幅大小为M*N的输入图像f(x,y), 由P >= 2M-1,Q >= 2N-1;得到填充参数P,Q,典型的我们选择,P=2M,Q=2N;如果滤波的目的仅是粗糙的视觉分析,可以跳过此步骤;2、对f(x,y) 添加必要数量的0,形成大小为P*Q的图像 fp(x,y);3、用乘以fp(x,y)移到其变换中心;4、计算来自步骤3图像的DFT,...原创 2019-03-07 11:38:35 · 7908 阅读 · 1 评论 -
OpenCV C++频率域相角减半,幅值不变
在复数坐标系下,相角减半,幅值不变;画图如下:由倍角公式:令:则 所以 代码实现://将相角*0.5,幅值保持不变void half_angel(Mat &complex_r, Mat &complex_i, Mat &dst){ Mat temp[...原创 2019-03-07 10:23:15 · 236 阅读 · 1 评论 -
OpenCV C++使用高通滤波和阈值法增强指纹图像
《数字图像处理》冈萨雷斯 第三版中,P179有一个指纹增强的例子;先用opencv模拟实现:处理这个指纹图像 ,其污染是很明显的。自动指纹识别的关键一步是增强指纹的脊线并减小污染。使用高通滤波实现;脊线增强使用脊线包含高频这样一个事实来完成,而高通滤波不会改变高频;另一方面,滤掉了低频,而低频分量对应图像中慢变化的灰度,例如背景和污染。这样增强就可以同时减少高频外的所有特征来达到,...原创 2019-03-08 17:34:54 · 4966 阅读 · 1 评论 -
OpenCV C++使用傅里叶谱和相角重建图像
关于傅里叶谱和相角的进一步说明:在频域下,原始图像经过dft变换后,可得到两个矩阵,分别是复数的实部和虚部;Z=A+Bi在复数坐标系下,某一点像素可由值和角度表示;如果只保留相角信息,则只需将r=1,即实部和虚部同时缩小r倍;如果只保留幅值信息,则只需将a值和b值同时设置为 都设置为45,135,225,315度如果使用图像a的幅值图像b的相角,则按下图计算d...原创 2019-03-06 14:06:55 · 4142 阅读 · 1 评论 -
OpenCV C++二维傅里叶谱和相角阵列
傅里叶变换 二维DFT的极坐标表示 幅度或频率谱为 R(u,v)和I(u,v)分别是F(u,v)的实部和虚部 相角或相位谱为 ...原创 2019-03-06 13:00:58 · 1577 阅读 · 1 评论 -
OpenCV图像滤波,C++
图像平滑(smoothing)也称为“模糊处理”(bluring),是一项简单且使用频率很高的图像处理方法。可以用来压制、弱化或消除图像中的细节、突变、边缘和噪声。但最常见的是用来减少图像上的噪声或者失真。降低图像分辨率时,平滑处理是很重要的。图像噪声是图像在获取或传输的过程中受到随机信号的干扰,在图像上出现的一些随机的、离散的、孤立的像素点,这些点会干扰人眼对图像信息的分析。...原创 2019-02-21 11:02:09 · 5542 阅读 · 1 评论 -
OpenCV C++实现频域滤波器汇总 理想低通、理想高通、巴特沃思低通、巴特沃思高通、高斯低通、高斯高通
根据各个滤波公式及前几章内容,可实现理想低通、理想高通、巴特沃思低通、巴特沃思高通、高斯低通、高斯高通滤波器;效果图:高斯低通 D0=30巴特沃思低通 D0=30,n=2理想低通D0=30:高斯高通D0=80:巴特沃思高通 D0=80,n=2理想高通D0=80:代码实现:#include<opencv2/opencv.hpp>...原创 2019-02-26 13:44:56 · 6405 阅读 · 2 评论 -
OpenCV C++实现频域 巴特沃斯低通滤波器
巴特沃思低通滤波器n级巴特沃思低通滤波器(BLPF)定义如下: D0为截至频率距原点的距离,D(u,v)是点(u,v)距 原点的距离不同于ILPF,BLPF变换函数在通带与被滤除的频率 之间没有明显的截断当D(u,v)=D0时,H(u,v)=0.5(最大值是1,当 D(u,v)=0)应用:...原创 2019-02-26 11:00:32 · 6102 阅读 · 2 评论 -
OpenCV C++实现频域理想低通滤波器
频率域平滑滤波器有 1、理想低通滤波器 2、巴特沃思低通滤波器 3、高斯低通滤波器√ 边缘和噪声等尖锐变化处于傅里叶变换的高 频部分√ 平滑可以通过衰减高频成分的范围来实现√ 理想低通滤波器:尖锐√ 巴特沃思低通滤波器:处于理想和高斯滤波 器之间√ 高斯低通滤波器:平滑l 理想低通滤波器 ...原创 2019-02-26 10:46:23 · 8009 阅读 · 7 评论 -
图像增强-点处理方法总结
图像增强的方法、策略、处理对象如下:前几篇文章都是针对某一点像素操作的,属于时域分析中的点处理;线性操作------可用于两图像的线性混合或ROI区域混合,addWeighted函数。图像平均------减少图像噪声的一种简单方式,处理低照度下产生高斯噪音的图像较为理想,也可处理椒盐/相机噪声。图像反转------用于增强嵌入在一幅图像的暗区域中的白色或灰色细节。特别是当黑色面...原创 2019-02-20 16:37:13 · 5502 阅读 · 0 评论 -
OpenCV彩色图像的直方图均衡化 C++
先均衡化一下图像亮度看看情况,方法:由BGR-->YCrCb--->均衡化Y--->BGR代码如下:#include <iostream>#include <string>#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/highg...原创 2019-02-20 15:06:45 · 5003 阅读 · 1 评论 -
OpenCV灰度图的直方图均衡化 C++
• 图像直方图的定义1: 一个灰度级在范围[0,L-1]的数字图像的直 方图是一个离散函数 h(rk)= nk , nk是图像中灰度级为rk的像素个数, rk 是第k个灰度级,k = 0,1,2,…,L-1 由于rk的增量是1,直方图可表示为: p(k)= nk 即,图像中不同灰度级像素出现的次数。• ...原创 2019-02-20 14:39:12 · 3761 阅读 · 1 评论 -
OpenCV 同态滤波 高斯高通 C++
概述https://blog.csdn.net/cyf15238622067/article/details/86657370文中介绍的入射分量和反射分量模型,可开发一种频域处理过程,通过压缩灰度范围和增强对比度来改善一幅图像的外观。频谱域同态滤波图像可以表示为照度和反射率的乘积:f(x,y) =i(x,y)r(x,y)现在定义:则有:或式...原创 2019-03-12 16:42:34 · 5108 阅读 · 5 评论 -
OpenCV 频率域的拉普拉斯算子 C++
我们已使用拉普拉斯算子对空间域图像进行了增强。现在在空间域实现它,并证明空间域和频率域技术是等效的。拉普拉斯算子在频率域的实现:或者关于频率域的中心,使用如下滤波器实现:D(u,v)是距离函数。然后拉普拉斯图像由下式得到:F(u,v)是f(x,y)的傅里叶变换。增强可用下式这里c = -1, 因为H(u,v)是负的。将图像都标定到0-1使用教材图...原创 2019-03-12 17:25:25 · 2931 阅读 · 1 评论 -
已实现的图像增强算法 OpenCV C++
在做人脸识别过程中,由于早上或晚上光线不足,需要对图像增强。实现了实际中方法,当做记录1、Y 混合空间增强 2、opencv detailEnhance3、Y 直方图均衡化4、Y 模糊处理 提高对比度5、拉普拉斯算子增强6、Y 伽马增强 均值判断 >85 <160 对应伽马值 0.4, 2.57、CLAHE 限制对比度自适应直方图均衡...原创 2019-04-11 11:39:27 · 4595 阅读 · 1 评论 -
【图像处理】一种低光照图像的亮度提升方法(Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images)
前言 在实际的拍照过程中,常常会遇到,光线不足的情况。这时候单反用户一般会调大感光度,调大光圈,以让照片整体更清晰,更亮。那么如果照片已经被拍的很暗了,怎么办呢?这时候我们可以利用算法来提升图像整体的光照情况,让图像更清晰。 2013年这篇《Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images...转载 2019-04-11 10:49:58 · 2723 阅读 · 1 评论 -
ACE(Automatic Color Enhancement),自动色彩增强算法
ACE(Automatic Color Enhancement),自动色彩增强算法,是一种对于彩色图像增强十分行之有效的方法。它的改进算法以及快速实现在文章Automatic Color Enhancement (ACE) and its Fast Implementation,2012中提出。 在NxN的图像上,ACE算法的算法复杂度为O(N^4),文章提出的新的ACE算法采取了两...原创 2019-04-11 10:42:33 · 6114 阅读 · 1 评论 -
OpenCV 局部自适应对比度增强ACE算法 C++
图像的对比度增强算法在很多场合都有着重要的应用,特别是在医学图像上,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。而医学图像由于本身及成像条件的限制,图像的对比度很低。因此,在这个方面已经开展了很多的研究。这种增强算法一般都遵循一定的视觉原则。众所周知,人眼对高频信号(边缘处等)比较敏感。虽然细节信息往往是高频信号,但是他们时常嵌入在大量的低频背景信号中,从而使得其视觉可见性降...原创 2019-04-11 09:51:50 · 6284 阅读 · 1 评论 -
OpenCV 对比度受限的自适应直方图均衡化(CLAHE) C++实现
直方图均衡化(HE)是一种很常用的直方图类方法,基本思想是通过图像的灰度分布直方图确定一条映射曲线,用来对图像进行灰度变换,以达到提高图像对比度的目的。该映射曲线其实就是图像的累计分布直方图(CDF)(严格来说是呈正比例关系)。然而HE是对图像全局进行调整的方法,不能有效地提高局部对比度,而且某些场合效果会非常差。对比度受限的自适应直方图均衡(CLAHE,Contrast Limited Ada...原创 2019-04-11 09:14:48 · 13711 阅读 · 4 评论 -
OpenCV 带参数的维纳滤波 C++
下图是OpenCV 自带例子的修改版本。结果:代码实现:#include <iostream>#include "opencv2/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include <opencv2/opencv.hpp>using namespace cv;using namespa...原创 2019-03-27 10:16:46 · 8307 阅读 · 3 评论 -
盲目去卷积和盲目去模糊的例子
盲目去卷积和盲目去模糊,就是计算psf或滤波器核;稍微有点效果部分代码:#include "common.h"#include "ImageDeblur.h"#include "helper.h"int main(int argc, char *argv[]){ std::string filename = argv[1]; cv::Mat img ...原创 2019-04-04 11:02:09 · 1831 阅读 · 1 评论 -
OpenCV 运动模糊的模拟 C++
运动模糊时,模糊后图片某点的值应该与原图沿运动角度方向前面的点有关,并且越近邻影响越大,即权值越大。所以除了确定卷积核之外,还确定了锚点(anchor)右下角60度移动,距离50代码实现:#include "opencv2/opencv.hpp"typedef cv::Mat Mat;void genaratePsf(Mat &psf, cv::Point ...原创 2019-03-26 11:49:30 · 2531 阅读 · 1 评论 -
OpenCV 陷波滤波器消除周期性噪音 C++
观察下面图像:有明显的近似水平线的噪音模式,我们希望他在频率域内的成分沿垂直轴集中;下图是该图像的谱;将垂直轴的分量去掉,构建的陷波器如下:原图与结果图对比:滤掉的空间噪音模式:代码实现:#include "opencv2/opencv.hpp"typedef cv::Mat Mat;Mat image_add_border( Mat ...原创 2019-03-22 10:31:33 · 5232 阅读 · 1 评论 -
OpenCV 彩色图像的自适应中值滤波 C++
前面讲过中值滤波,只要脉冲噪声的空间密度不大,性能就会很好(根据经验Pa和Pb小于0.2)。见https://blog.csdn.net/cyf15238622067/article/details/87854437下面证明 自适应中值滤波可处理更大概率(密度)的脉冲噪音;自适应中值滤波的另一个优点是平滑非脉冲噪声时试图保留细节,这是传统中指滤波所做不到的。自适应中值滤波也工作在Sx...原创 2019-03-22 09:02:00 · 3841 阅读 · 1 评论 -
OpenCV使用陷波滤波器减少摩尔波纹 C++
陷波滤波器是更有用的选择性滤波器。陷波滤波器拒绝事先定义的关于矩形中心的一个邻域的频率。零相移滤波器必须是关于原点对称的,因此一个中心位于(u0,v0)的陷波在位置(-u0,-v0)必须有一个对应的陷波。陷波带阻滤波器可以用中心已被平移到陷波滤波器中心的高通滤波器的乘积来构造。一般形式为: ...原创 2019-03-18 15:21:50 · 9130 阅读 · 5 评论 -
OpenCV 频率域实现钝化模板、高提升滤波和高频强调滤波 C++
为什么要进行高频提升和高频加强?高频滤波后的图像,其背景平均强度 减小到接近黑色(因为高通滤波器滤除 了傅里叶变换的零频率成分: F(0,0)=f(x,y)=0)解决办法:把原始图像加到过滤后的 结果,如拉普拉斯算子增强,这种处理 称为高频提升过滤钝化模板(锐化或高通图像):从一幅图像减去 其自身模糊图像而生成的锐化图像构成。在频率 域,即从图像本身减去低通滤波(模糊)后的图 像...原创 2019-03-13 11:33:51 · 4196 阅读 · 2 评论 -
OpenCV 彩色图像的直方图均衡化、平滑和锐化 C++
前面已经介绍过灰度图像的平滑和锐化,下面使用均值平滑和拉普拉斯锐化处理彩色图像。平滑结果:平滑差异和锐化结果代码实现:#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"using namespace cv;int main() { Mat src ...原创 2019-03-21 14:03:38 · 5149 阅读 · 1 评论 -
OpenCV 任意曲线(S型等)调整图像色调,对比度小工具 C++
色调变换改善图像色调的变换通常交互的选择。其概念是实验性的调整图像的亮度和对比度,以便在合适的灰度范围提供最多的细节。彩色本身并不改变。在RGB和CMYK空间中,这意味着使用相同的变换函数映射3个(或4个)彩色分量。在HSI中则改进了亮度分量;下面显示了3个常见的色调不平衡的几个典型变换----平淡的,较亮的,较暗的图像。S型曲线可以增强对比度,凹凸曲线分别减小、增加亮度。下图...原创 2019-03-21 10:48:40 · 4922 阅读 · 1 评论 -
OpenCV比特平面分层 C++
• 位平面切片 假设图像中每个像素的灰度级是256,这可以用8位来表 示,假设图像是由8个1位平面组成,范围从位平面0到位 平面7。其中,位平面0包含图像中像素的最低位,位平面 7包含像素的最高位代替突出灰度级范围,我们可以突出特定比特来为整个图像外观作出贡献(理解这一点很重要)一副8比特灰度图可考虑分层1到8个比特平面。很容易理解的是,4个高阶比特平面,特别是最后两个比特平面,...原创 2019-02-20 13:27:18 · 1435 阅读 · 1 评论 -
OpenCV C++频率域滤波 高斯低通
l 频率域滤波的基本步骤思想:通过滤波器函数以某种方式来修改图像 变换,然后通过取结果的反变换来获得处理后 的输出图像低通滤波器: 使低频通过而使高频衰减的滤波 器 被低通滤波的图像比原始图像少尖锐的细节部分而 突出平滑过渡部分 对比空间域滤波的平滑处理,如均值滤波器高通滤波器: ...原创 2019-02-25 16:30:31 · 4414 阅读 · 1 评论 -
OpenCV图像增强之灰度级分层 C++
突出图像中特定灰度范围的亮度通常是重要的,其应用包括增强特征;灰度级分层有多种方法,基本方法有两种代码实现:#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#inclu...原创 2019-02-20 10:30:38 · 2096 阅读 · 1 评论 -
OpenCV图像锐化(Laplace算子)
前面介绍的几种滤波器都属于平滑滤波器(低通滤波器),用来平滑图像和抑制噪声的;而锐化空间滤波器恰恰相反,主要用来增强图像的突变信息,图像的细节和边缘信息。平滑滤波器主要是使用邻域的均值(或者中值、积分)来代替模板中心的像素,消弱和邻域间的差别,以达到平滑图像和抑制噪声的目的;模糊图像,称为低通滤波器锐化滤波器则使用邻域的微分作为算子,增大邻域间像素的差值,使图像的突变部分变的更加明显。锐化...原创 2019-02-21 15:42:32 · 34579 阅读 · 4 评论 -
OpenCV实现自己的线性滤波器 C++
卷积卷积是在每一个图像块与某个算子(核)之间进行的运算。核核说白了就是一个固定大小的数值数组。该数组带有一个锚点,一般位于数组中央。如何用核实现卷积假如你想得到图像的某个特定位置的卷积值,可用下列方法计算:将核的锚点放在该特定位置的像素上,同时,核内的其他值与该像素邻域的各像素重合; 将核内各值与相应像素值相乘,并将乘积相加; 将所得结果放到与锚点对应的像素上;...原创 2019-02-21 13:47:51 · 525 阅读 · 1 评论 -
OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
1. 基于直方图均衡化的图像增强 直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。 彩色图像的直方图均衡化实现:#include <opencv2/highgui/highgui.hpp> #include <open...转载 2018-12-18 10:47:55 · 514 阅读 · 0 评论 -
FFmpeg的AVFrame数据转换到OpenCV Mat中
使用FFmpeg的视频解码功能,可以接受rtsp 的H264码流,得到YUV数据;解码后的数据放在AVFrame 结构中,可参考雷神的博客https://blog.csdn.net/leixiaohua1020/article/details/14214577现将YUV数据转到Mat中 AVFrame *frame; ...原创 2018-09-19 11:40:19 · 4450 阅读 · 1 评论 -
Opencv直接使用YUV视频源
OpenCV默认情况下是BGR24的方式将数据丢到Mat中,In header file videoio.hpp:// Generic camera output modes.// Currently, these are supported through the libv4l interface only.enum { CAP_MODE_BGR = 0, // BGR24 (d...原创 2018-09-19 09:23:33 · 7256 阅读 · 1 评论 -
OpenCV3中cvtColor函数颜色空间转换格式明细
上篇文章中说了VideoCapture将读取的到流统一转换成了BGR24;其实imread()也是将图片转换成BGR24;如果想要进行颜色空间的转换需要使用cvtColor()函数;void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )src:这是一幅8位无符号、16位无符号(CV_16UC)、...原创 2018-09-07 13:58:19 · 4487 阅读 · 1 评论