- 博客(160)
- 资源 (24)
- 收藏
- 关注
原创 dbus-glib编程4:使用dbus-glib
dbus-glib是dbus底层接口的一个封装。本讲我们用dbus-glib做一个dus接口,并写一个客户程序。1、接口描述文件首先编写接口描述文件.我们要实现的连接的公共名是"org.freedesktop.messagetestcuiyf",接口描述文件如下:$cat messagetest.xml<?xml version="1.0" encoding="UTF-8" ?><node name="/org/freedesktop/MessageTest/De
2020-09-03 11:54:25
1091
1
原创 dbus-glib编程3:消息和消息总线 dbus-send的使用
1、从例子开始我写了一个最简单的dbus服务器,它通过dbus提供了一个加法的接口。 大家可以https://download.youkuaiyun.com/download/cyf15238622067/12797794这个例子。这是一个autotool工程,大家解包后,执行:./autogen.sh./configuremake然后在src目录运行:./example-service这时再运行d-feet,连接session bus,在“Bus Name”窗口会看到一个叫“org.f
2020-09-02 11:48:20
2434
1
原创 dbus-glib编程2:d-feet的使用
支持dbus的系统都有两个标准的消息总线:系统总线和会话总线。系统总线用于系统与应用的通信。会话总线用于应用之间的通信。 网上有一个叫d-feet的python程序,我们可以用它来观察系统中的dbus世界。...
2020-09-02 10:08:58
2687
1
原创 dbus-glib编程:DBus是什么玩意
最近做linux桌面环境定制化,发现绝大多数cinnamon、gnome的桌面应用用的是dbus机制。DBus是什么呢?简单说就是同一桌面环境下进程间通讯的一种机制,底层用的是socket,只是封装了一层。那和一般的IPC有啥区别,严格来说没啥区别,都是进程间通讯嘛。只是实现原理和效率不同而已嘛。正式开始.......1、Dbus是Linux下进程通信的一种机制,具有分层架构分3层Dbus daemon 或者 message bus daemon 守护进程(可能有多个,)libdbus...
2020-09-01 17:50:29
1780
1
原创 Linux多线程C++工具库:liblmp_tool -- 线程池类ThreadPool
Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_tool使用条件变量和互斥锁实现线程池:头文件:/** Use of this source code is governed by a BSD-style license* that can be found in the Li...
2019-05-31 16:39:36
369
1
原创 Linux多线程C++工具库:liblmp_tool -- 线程类Thread
Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_toolThread 类封装了原始 pthread_create等操作函数;内含同步工具和原子锁头文件:/** Use of this source code is governed by a BSD-style license*...
2019-05-31 16:05:17
277
1
原创 Linux多线程C++工具库:liblmp_tool -- 同步工具CountDownLatch
Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_toolCountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch原理CountDownLat...
2019-05-31 15:52:21
257
1
原创 Linux多线程C++工具库:liblmp_tool -- 条件变量Condition
Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_tool使用RAII手法封装MutexLock& mutex_;pthread_cond_t pcond_;实现条件变量和互斥锁的使用;头文件:/** Use of this source code is gove...
2019-05-31 15:46:37
265
1
原创 Linux多线程C++工具库:liblmp_tool -- RAII手法封装互斥锁MutexLock
Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_tool互斥锁(mutex)恐怕是使用得最多的同步原语,粗略地说,它保护了临界区,任何一个时刻最多只能有一个线程在此mutex划出的临界区内活动。单独使用mutex时,我们主要为了保护共享数据。个人的原则是:·用RAII手法封装mutex...
2019-05-31 15:40:02
300
1
原创 Linux多线程C++工具库:liblmp_tool --CurrentThread 类
CurrentThread 类 主要实现 获取当前线程的tid,并在类中保存,后续在ThreadPool中查询时,做一次判断即可。不用每次都查询tid.Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_tool头文件实现:/** Use of this source code is gove...
2019-05-31 15:29:08
291
1
原创 Linux多线程C++工具库:liblmp_tool --TimeZone 时区类
实现了localtime 和 UTCtime的转换:Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_toolTimezone类分析:头文件;定义了localtime和utctime 的转换;使用了shard_ptr 智能指针处理date/** Use of this source...
2019-05-31 15:06:44
404
1
原创 Linux多线程C++工具库:liblmp_tool -- Julian date 计算
维基百科 解释:https://en.wikipedia.org/wiki/Julian_day主要是天文学在用,在一个周期内以日计数计算。Linux多线程编程工具库liblmp_tool github:https://github.com/Dwyane05/liblmp_toolDate类分析:头文件:;/** Use of this source code...
2019-05-31 14:47:49
474
1
原创 Linux多线程C++工具库:liblmp_tool -- 原子操作
Linux内核提供了一系列基本的API操作,包括时间,文件,线程等;但直接使用费时费力,在学习了陈硕大神的muduo库后,发现其内部已经做好了一些封装,使用了一些技巧,包括RAII手法。该库的第一版本,先借鉴muduo_base的代码,后面再添加其他功能。欢迎starLinux多线程编程工具库github:https://github.com/Dwyane05/liblmp_tool...
2019-05-30 18:01:25
336
1
原创 Qt5.6+OpenCV3.2实现rtsp流媒体播放
因为竞争对手有界面,所以我们也要做界面.................选择了qt做界面,毕竟Linux下可选的不多。OpenCV 用来处理视频流,还好不用处理音频,不然还要加上FFmpeg了。Qt使用QLabel显示图片,用定时器刷新。中间遇到了图像显示扭曲,和颜色不正确问题。OpenCV中颜色是BGR,Qt中是RGB 需要用cvtColor转换一下;另一点是QIm...
2019-04-16 15:49:38
4957
3
原创 已实现的图像增强算法 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
4726
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
2805
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
6531
1
原创 OpenCV 局部自适应对比度增强ACE算法 C++
图像的对比度增强算法在很多场合都有着重要的应用,特别是在医学图像上,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。而医学图像由于本身及成像条件的限制,图像的对比度很低。因此,在这个方面已经开展了很多的研究。这种增强算法一般都遵循一定的视觉原则。众所周知,人眼对高频信号(边缘处等)比较敏感。虽然细节信息往往是高频信号,但是他们时常嵌入在大量的低频背景信号中,从而使得其视觉可见性降...
2019-04-11 09:51:50
6696
1
原创 OpenCV 对比度受限的自适应直方图均衡化(CLAHE) C++实现
直方图均衡化(HE)是一种很常用的直方图类方法,基本思想是通过图像的灰度分布直方图确定一条映射曲线,用来对图像进行灰度变换,以达到提高图像对比度的目的。该映射曲线其实就是图像的累计分布直方图(CDF)(严格来说是呈正比例关系)。然而HE是对图像全局进行调整的方法,不能有效地提高局部对比度,而且某些场合效果会非常差。对比度受限的自适应直方图均衡(CLAHE,Contrast Limited Ada...
2019-04-11 09:14:48
13976
4
原创 盲目去卷积和盲目去模糊的例子
盲目去卷积和盲目去模糊,就是计算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
1874
1
原创 基于Python的神经网络图片增强库neural-enhance
在人脸识别过程中,处理模糊图片时。发现有一个库neural-enhance,demo图片显示效果:GitHub地址:https://github.com/alexjc/neural-enhance.git先安装:Ubuntu 16.04 Python 3.5python3 -m pip install --ignore-installed -r requir...
2019-04-03 11:48:29
1273
1
原创 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
8487
3
原创 视频图像去模糊常用处理方法
视频图像去模糊常用处理方法随着“平安城市”的广泛建设,各大城市已经建有大量的视频监控系统,虽然监控系统己经广泛地存在于银行、商场、车站和交通路口等公共场所,但是在公安工作中,由于设备或者其他条件的限制,案情发生后的图像回放都存在图像不清晰,数据不完整的问题,无法为案件的及时侦破提供有效线索。经常出现嫌疑人面部特征不清晰,难以辨认,嫌疑车辆车牌模糊无法辨认等问题。这给公安部门破案、法院的取证都带...
2019-03-26 13:27:47
8979
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
2605
1
原创 OpenCV 陷波滤波器消除周期性噪音 C++
观察下面图像:有明显的近似水平线的噪音模式,我们希望他在频率域内的成分沿垂直轴集中;下图是该图像的谱;将垂直轴的分量去掉,构建的陷波器如下:原图与结果图对比:滤掉的空间噪音模式:代码实现:#include "opencv2/opencv.hpp"typedef cv::Mat Mat;Mat image_add_border( Mat ...
2019-03-22 10:31:33
5386
1
原创 OpenCV 彩色图像的自适应中值滤波 C++
前面讲过中值滤波,只要脉冲噪声的空间密度不大,性能就会很好(根据经验Pa和Pb小于0.2)。见https://blog.youkuaiyun.com/cyf15238622067/article/details/87854437下面证明 自适应中值滤波可处理更大概率(密度)的脉冲噪音;自适应中值滤波的另一个优点是平滑非脉冲噪声时试图保留细节,这是传统中指滤波所做不到的。自适应中值滤波也工作在Sx...
2019-03-22 09:02:00
3929
1
原创 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
5225
1
原创 OpenCV 任意曲线(S型等)调整图像色调,对比度小工具 C++
色调变换改善图像色调的变换通常交互的选择。其概念是实验性的调整图像的亮度和对比度,以便在合适的灰度范围提供最多的细节。彩色本身并不改变。在RGB和CMYK空间中,这意味着使用相同的变换函数映射3个(或4个)彩色分量。在HSI中则改进了亮度分量;下面显示了3个常见的色调不平衡的几个典型变换----平淡的,较亮的,较暗的图像。S型曲线可以增强对比度,凹凸曲线分别减小、增加亮度。下图...
2019-03-21 10:48:40
5108
1
原创 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
3589
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
4777
1
原创 OpenCV使用陷波滤波器减少摩尔波纹 C++
陷波滤波器是更有用的选择性滤波器。陷波滤波器拒绝事先定义的关于矩形中心的一个邻域的频率。零相移滤波器必须是关于原点对称的,因此一个中心位于(u0,v0)的陷波在位置(-u0,-v0)必须有一个对应的陷波。陷波带阻滤波器可以用中心已被平移到陷波滤波器中心的高通滤波器的乘积来构造。一般形式为: ...
2019-03-18 15:21:50
9496
5
原创 OpenCV 频率域实现钝化模板、高提升滤波和高频强调滤波 C++
为什么要进行高频提升和高频加强?高频滤波后的图像,其背景平均强度 减小到接近黑色(因为高通滤波器滤除 了傅里叶变换的零频率成分: F(0,0)=f(x,y)=0)解决办法:把原始图像加到过滤后的 结果,如拉普拉斯算子增强,这种处理 称为高频提升过滤钝化模板(锐化或高通图像):从一幅图像减去 其自身模糊图像而生成的锐化图像构成。在频率 域,即从图像本身减去低通滤波(模糊)后的图 像...
2019-03-13 11:33:51
4337
2
原创 OpenCV 频率域的拉普拉斯算子 C++
我们已使用拉普拉斯算子对空间域图像进行了增强。现在在空间域实现它,并证明空间域和频率域技术是等效的。拉普拉斯算子在频率域的实现:或者关于频率域的中心,使用如下滤波器实现:D(u,v)是距离函数。然后拉普拉斯图像由下式得到:F(u,v)是f(x,y)的傅里叶变换。增强可用下式这里c = -1, 因为H(u,v)是负的。将图像都标定到0-1使用教材图...
2019-03-12 17:25:25
2977
1
原创 OpenCV 同态滤波 高斯高通 C++
概述https://blog.youkuaiyun.com/cyf15238622067/article/details/86657370文中介绍的入射分量和反射分量模型,可开发一种频域处理过程,通过压缩灰度范围和增强对比度来改善一幅图像的外观。频谱域同态滤波图像可以表示为照度和反射率的乘积:f(x,y) =i(x,y)r(x,y)现在定义:则有:或式...
2019-03-12 16:42:34
5180
5
原创 OpenCV C++使用高通滤波和阈值法增强指纹图像
《数字图像处理》冈萨雷斯 第三版中,P179有一个指纹增强的例子;先用opencv模拟实现:处理这个指纹图像 ,其污染是很明显的。自动指纹识别的关键一步是增强指纹的脊线并减小污染。使用高通滤波实现;脊线增强使用脊线包含高频这样一个事实来完成,而高通滤波不会改变高频;另一方面,滤掉了低频,而低频分量对应图像中慢变化的灰度,例如背景和污染。这样增强就可以同时减少高频外的所有特征来达到,...
2019-03-08 17:34:54
5058
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
8101
1
原创 OpenCV C++频率域相角减半,幅值不变
在复数坐标系下,相角减半,幅值不变;画图如下:由倍角公式:令:则 所以 代码实现://将相角*0.5,幅值保持不变void half_angel(Mat &complex_r, Mat &complex_i, Mat &dst){ Mat temp[...
2019-03-07 10:23:15
255
1
原创 数字图像处理中的卷积定理和傅里叶变换
首先将 t 所在域称为空间域,将 u 所在域称为频率域;一维卷积定理:解释:空间域中两个函数的卷积的傅里叶变换等于两个函数的傅里叶变换在频率域中的乘积;反过来,如果有两个变换的乘积,那么我们可以通过计算傅里叶反变换得到空间域的卷积;是傅里叶变换对;卷积定理的另一半如下,说明频率域的卷积和空间域相似二维卷积定理:表明,F(u,v)H(u,v)的 ID...
2019-03-06 14:54:09
10221
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
4255
1
原创 OpenCV C++二维傅里叶谱和相角阵列
傅里叶变换 二维DFT的极坐标表示 幅度或频率谱为 R(u,v)和I(u,v)分别是F(u,v)的实部和虚部 相角或相位谱为 ...
2019-03-06 13:00:58
1638
1
hello-dbus3-0.1.zip
2020-09-02
Automatic Color Enhancement (ACE) and its Fast Implementation
2019-04-11
An simple implementation of image deblur code
2019-04-04
任意曲线(S型等)调整图像色调,对比度小工具 OpenCV C++
2019-03-21
SDL2系列教程11-动漫人物小游戏代码
2018-09-30
SDL2系列教程10-扔箱子的抛物线小游戏代码
2018-09-30
SDL2系列教程8-文本渲染和输入实例代码
2018-09-30
SDL2系列教程7-声音和扩展库实例代码
2018-09-30
SDL2系列教程6-纹理测试例程
2018-09-30
SDL2系列教程4-事件处理测试例程
2018-09-30
sdl2 bitmap测试例程
2018-09-30
OpenCV3.2 实现目标检测和SVM 物品识别
2018-05-24
[像程序员一样思考].V.Anton.Spraul.扫描版
2018-03-22
《UNIX网络编程(卷1):套接字联网API(第3版》 中文PDF V1.3 + 源码Source Code
2017-12-12
linux 下grep命令C代码实现
2017-09-27
linux 下cp命令C代码实现
2017-09-27
linux下df命令statfs函数实现
2017-09-27
getevent命令源码
2017-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人