- 博客(71)
- 资源 (25)
- 问答 (3)
- 收藏
- 关注
原创 FFMPEG 中的pixfmt 描述符
typedef struct AVComponentDescriptor { /** * Which of the 4 planes contains the component. */ int plane; /** * Number of elements between 2 horizontally consecutive pixels. * Elements are bits for bitstream formats, bytes..
2021-01-08 17:25:57
842
原创 通过RGB或YUV改变图像的色度和饱和度
自己曾经尝试过BGR先转成HSV,再改变S分量,但是效果非常差,这里是我是在别人论文上查到的,给大家参考一下 1. 通过YUV改变图像的饱和度,这里的r的范围一般为(0 , 5) , 如果为1 表示不改变图像数据 公式如下:Y = Y;U = U*r;V = V*r;注意:这里的 U~(-128- 128), V~(-128-128) 如果你的UV的范围是0-2...
2018-11-12 11:17:39
9707
11
原创 【图像处理】 一、OSTU分割
Ostu算法(又称为最大类间方差法) 图像中像素的灰度值小于阈值T的像素个数记作N0,像素灰度大于阈值T的像素个数记作N1,则有:图像大小:M*NT为二值化的阈值;N0为灰度小于T的像素的个数,N0的平均灰度为μ0N1 为灰度大于T的像素的个数,N1的平均灰度为μ1ω0=N0/ M×N (1) //落在N0的概率ω1=N1/ M×N (2) //落在N1的概率...
2018-09-21 23:04:03
2489
原创 opencv
namespace hal {void resize(int src_type, const uchar * src_data, size_t src_step, int src_width, int src_height, uchar * dst_data, size_t dst_step, int dst_width, int dst_h...
2018-08-31 17:15:01
416
原创 【设计模式】 工厂模式实例 C++ , 利用工厂模式写一个计算器
#include <iostream>class Calculator{public: virtual double cal()=0; Calculator(){} void setValue(double _a, double _b) { a=_a; b=_b; }public: double a; double b;};class...
2018-08-01 14:14:00
535
原创 git 笔记
提交本地工程到服务器1.首先在git服务器上创建初始项目,并记录ssh地址 如:https://github.com/zfy1355/presst-test.git2.进入本地项目目录,依次执行下面命令$git init //初始化本地仓库$git add * //或添加需要提交的文件$git commit -m "init project" //提交到本地仓库$git
2017-07-13 17:31:46
398
原创 RGB2GRAY 各种算法速度比较,整形乘法比查表法快!
1. 查表法,外循环用 这种格式 : //for(int j = 0; j != h; ++j)// for(int i = 0; i!=w;++i)//、 for(int j = 0; j != h; ++j) for(int i = 0; i!=w;++i) { int r,g,b,y,r1,g1,b1,y1; r = D[in[of3]];//查表 //这里
2017-05-27 16:50:08
1075
转载 经典算法,yuv与rgb互转,查表法,让你的软件飞起来
代码的运算速度取决于以下几个方面1、 算法本身的复杂度,比如MPEG比JPEG复杂,JPEG比BMP图片的编码复杂。2、 CPU自身的速度和设计架构3、 CPU的总线带宽4、 您自己代码的写法将RGB格式的彩色图像先转换成YUV图像。图像转换的公式如下:Y = 0.299 * R + 0.587 * G + 0.114 * B;图像尺
2017-05-26 18:32:06
6809
原创 char 、 unsigned char 互相转化
1. 利用unsigned char (即uchar) 保存char 数据 ,直接赋值即可unsigned char uc;char c=-33;uc= c;cout
2017-04-28 17:05:18
3149
原创 Lab 色彩模型和取值范围
L∈(0,100)a∈(-128,127)b∈(-128,127) opencv 的Lab数据对齐做了量化,使其处于0-255范围L=L*2.55a=a+128b=b+128
2017-04-17 15:17:02
12551
1
原创 【图像处理】如何改变图像的曲线?
改变图像的曲线是一个非常有用的功能,曲线的功能可以实现如下效果:1. 改变对比度,通过将曲线黑端拉低,白端拉高即可;2.改变亮度, 通过将曲线拉高,可以增加图像的亮度;2.改变色相,比如,仅仅提升红色像素的亮度,可以使图像看起来偏红。但是如何实现呢??由于曲线是平滑的,我们可以用一个二次函数来实现:公式为 : y = x+k - k*( (x-a2)/(a3-a2)
2017-03-30 14:47:24
2043
原创 opencv 一些函数的耗时计算
smooth gaussian : 5smooth median : 5cvtColor CV_BGR2Lab : 3accumulateWeighted : 11convertTo CV_8U: 7absdiff: 2threshold: 0dilate 20: 8fill_hole : 1bitwise_xor : 0shape : 0copyT
2017-02-22 18:30:26
2841
原创 python笔记
1. 从键盘输入数据guess = int(raw_input('Enter an integer : '))2. python里面的“真”是“True”,区分大小写。3 循环for i in range(1, 5): print ielse: print 'The for loop is over'4. 函数def sayHello(): p
2017-01-22 10:41:25
357
原创 不同格式的YUV 和 RGB互转
YUV色彩空间: Y是亮度值,也就是说8位的灰度值即可组成一幅黑白图像,黑白电视机就是这样的. UV是色彩值,是给Y上色用的.U是Cb也就是RGB中的蓝色分量,V是Cr也就是RGB中的红色分量. YUV444 指的是每四个像素采样中每个亮度Y分量都有一个色彩UV分量上色. YUV422 指的是每四个像素采样中两个亮度Y分量都有一个
2017-01-17 15:00:27
852
原创 Some
1. 冒泡排序void swap( int &x, int &y ){ int c; c=x; x=y; y=c;} int a[10] = { 9,0,3,4,3,5,6,7,8 }; for( int i =0;i!=10;++i ) { for( int j = i+1;j!=10;++j ) { if( a[i]>a[j] ) { swa
2017-01-16 10:22:57
431
转载 fork 代码进阶
运行结果是: i son/pa ppid pid fpid 0 parent 2043 3224 3225 0 child 3224 3225 0 1 parent 2043 3224 3226 1 parent 3224 3225 3227 1 child 1 3227 0 1 child 1
2017-01-03 16:21:30
395
原创 H.264 详解
一、MPEG-4说明1、VOP视频编码技术VO(Video Object):视频对象,它是场景中的某个物体,最简单的情况下就是矩形框,它是有生命期的,由时间上连续的许多帧构成。VOP(Video Object Plane):视频对象平面,它可以看作是VO在某一时刻的采样,即一帧VO。2、运动估计与运动补偿技术I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类
2016-12-20 13:58:09
1581
原创 FFmpeg 命令
ffmpeg.exe -i abc.mov -c copy out.avi-c copy : 设置编码格式为原来的格式-c:v mjpeg :设置编码器格式为mjpeg-an :丢弃音频数据-vn :丢弃视频数据-ss t1 -t t2 : 剪辑视频
2016-12-20 12:08:37
734
原创 opencv笔记
1.Mat 通过外部指针赋值: Mat m(height, width,CV_8UC(3),rgb) ;2. Mat 读像素值,和写像素值//readVec3b p= m[0].at(0,0);//write _m[i].at(k,j) = p[3];
2016-12-13 18:32:06
553
原创 opencv+ linux + cmake 生成 opencv 静态库
您可以省去如下步骤,直接下载我编译好的opencv2.4.4 + Ubuntu + 64bit 静态库:http://download.youkuaiyun.com/detail/u011258240/97103311. 下载opencv源码2. 将opencv 源码放在linux 的一个文件夹下(记得不要放在共享文件夹下,不然会出现软链接的错误)3. opencv目录下新建文件夹 release4.新建op...
2016-12-06 11:02:12
11456
3
转载 opencv ORB各参数的含义
ORB中有很多参数可以设置,在OpenCV中它可以通过ORB来创建一个ORB检测器。ORB::ORB(int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, int firstLevel=0, int WTA_K=2, int scoreType=ORB::HARRIS_SCORE, i
2016-12-01 15:42:36
6770
原创 opencv 仿射变换 投射变换, 单应性矩阵
estimateRigidTransform():计算多个二维点对或者图像之间的最优仿射变换矩阵 (2行x3列),H可以是部分自由度,比如各向一致的切变。getAffineTransform():计算3个二维点对之间的仿射变换矩阵H(2行x3列),自由度为6.findHomography: 计算多个二维点对之间的最优单映射变换矩阵 H(3行x3列) ,使用最小均方误差或者RANSAC方法 。get
2016-12-01 11:17:47
807
原创 opencv 模板匹配, 已解决模板过大程序不工作的bug
#include #include #include #include #include #ifdef _DEBUG#pragma comment ( lib,"opencv_highgui244d.lib" )#pragma comment ( lib,"opencv_core244d.lib" )#pragma comment ( lib,"opencv
2016-11-29 17:24:57
1005
原创 opencv 单目标模板匹配(只适用于模板与目标尺度相同)
#include #include "opencv/cv.h" #include "opencv/cxcore.h" #include "opencv/highgui.h" using namespace std; #pragma comment ( lib,"opencv_highgui244.lib" )#pragma comment ( lib,"opencv_c
2016-11-29 14:42:03
743
原创 利用Cmake 将最新版本OBS编译成windows版本。
OBS build pathE:\CSource\directx\workplace\obs-studio-master\buildOBS pathE:\CSource\directx\workplace\obs-studio-master进入plugins\win-dshow执行git clone https://github.com/jp9000/libdsho
2016-11-07 18:32:26
5148
1
原创 MFC + XToolKit的使用 ( 亲自实践 )
1. 变量声明: 在Dlg.h 的public下CXTPButton m_Button2;2. 变量交换并设置按钮风格: Dlg.cpp下void CXT_VS2010Dlg::DoDataExchange(CDataExchange* pDX){CXTPResizeDialog::DoDataExchange(pDX);DDX_Control(pDX, ID
2016-11-03 17:40:39
1385
原创 linux core文件的打开和分析
1. core文件打开方式: ulimit -c unlimitedecho "1" > /proc/sys/kernel/core_uses_pid看下服务器上是否安装了 gdb,没有的话要装一下以调试模式打开程序 ./sip_gw -t2 -n 1之后程序会crashed, 程序目录会生成一个core文件,2. core 文件分析查看core
2016-10-25 10:11:11
781
原创 gcc/g++ 编译常见问题
1. error: ‘for’ loop initial declarations are only allowed in C99 mode这是因为gcc基于c89标准,换成C99标准就可以在for循环内定义i变量了:gcc src.c -std=c99 -o src
2016-10-14 09:35:03
1375
原创 C++ 常见格式转换
1. const char * 转 char* 指向const的指针不能被赋给指向非const的指针,所以应该用strcpy,也就是另开一块内存,把字符一个个复制过去,示例如下: const char *expr = "goodidea"; char *buf = new char[strlen(expr)+1]; strcpy(buf, expr);
2016-10-12 09:48:07
772
原创 常见数据类型的字节数
常见数据类型的字节数#include int main(){ int a = sizeof( unsigned char ); //1 int b = sizeof( char ); //1 int c = sizeof( unsigned int ); //4 int d = sizeof( int ); //4 int e = sizeof( short
2016-10-09 10:12:55
657
原创 GDB调试命令
1. 添加断点 某行添加断点 b 2某函数添加断点 b functionName2. 单步调试 s3 . 运行 r4. 查看变量值查看局部变量 info locals打印数组值 p a
2016-10-09 09:47:26
399
原创 Const指针 、 指向const的指针 、引用、指针
指向const的指针: 不允许通过指针来改变其指向的const值const double *cptr*cptr = 42; // error! 指针代表的值无法修改const double pi =3.14double *ptr = &pi //error ! 无法将指向const的指针赋值给非非const指针;const double *cptr = &pi //ok
2016-09-27 10:04:49
306
原创 编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;
编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;发现编译的程序引用的一个库(.a文件)是直接用./configure 编译的, 64位机器不能直接./configure 进行配置,需要采用如下方式CFLAGS="-O3 -fPIC"
2016-09-23 16:53:32
5853
转载 不可轻视复制构造函数
如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。以类 String 的两个对象 a,b 为例,假设 a.m_data 的内容为“ hello”,b.m_data 的内容为“ world”。 现将 a 赋给 b,缺省赋值函数的“位拷贝”意味着执行 b.m_data = a.m_data。
2016-09-18 17:58:14
247
原创 C++ 构造函数后面的冒号的作用
其实冒号后的内容是初始化成员列表,一般有三种情况: 1、对含有对象成员的对象进行初始化,例如, 类line有两个私有对象成员startpoint、endpoint,line的构造函数写成: line(int sx,int sy,int ex,int ey):startpoint(sx,sy),endpoint(ex,ey){……} 初始化时按照类定义中对象成
2016-09-18 09:31:41
7223
opencv 2.4.13 静态库 for linux
2016-12-13
Cpp_Concurrency_In_Action(本书是基于C++11新标准的并发和多线程编程深度指南
2016-03-09
【C#】 我C++的类要导出给C sharp 用 然后就出现这种bug
2018-07-17
【caffe例子问题】 net_->num_inputs() 为0
2018-07-03
请问一下CPU和GPU之间拷贝数据的速度是什么决定的??
2018-06-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人