- 博客(48)
- 资源 (1)
- 收藏
- 关注
转载 雅克比矩阵记录
雅克比矩阵平时经常会遇到,一直没怎么去好好理解。查询了网络大神的解答,自己做一个小小的记录。雅克比矩阵最近遇到的场景是在微积分换元时,看到可以做一些变换。其中求解雅克比矩阵行列式进行换元的方法此前也没有见到过。在向量的微积分中,雅克比矩阵是一个一阶偏导数排列成的矩阵,其行列式是雅克比行列式。在知乎上看到了相关的解答,解释了相关的含义。在一维几何上,由于一维上度量dx可以反映任意自由度为1的变量的全部特征,所述一阶微分不变性。可以想象在一个绳子上前进(一个维度),移动路程实际上只要
2020-12-15 23:17:25
1708
原创 VS + QT windows工程重新构建遇到的问题
1.:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/ATLMFC/INCLUDE/atlbase.(3210): Parse error at "__identifier"跟着这个错误后,会提示moc something错误解决办法:对于Qt的环境,修改pro工程文件:DEFINES += _ATL_NATIVE_INITIALIZATION在VS工程中 VS+Qt工程中maro define栏添加对应的指令,在一些新建的工..
2020-09-21 08:14:20
696
原创 QMediaplayer 使用问题记录
QMediaplayer 这个类是一个比较综合的类,包含了很多的功能。开始时由于在尝试了能够正常播放音乐,直接一步到位把它封装到一个自定义全局变量QThread里面,最后通过线程的方式播放,在手提电脑上测试没有问题。可以在发布程序,在别的电脑上测试都不能播放声音。(笔记本和台式机都测试了)打印错误信息The QMediaPlayer object does not have a valid serviceQMediaPlayer::Error er ==ServiceMissingErro.
2020-07-01 17:01:24
2207
转载 线程方程组SVD最小二乘法求解
奇异值分解(SVD)是计算机视觉领域中一种使用最为广泛的矩阵分解技术。我们已经知道了一个矩阵A可以分解为下面这样一种形式: A = VDV' (1),这里V是一个正交矩阵(AA' = I),V' 代表V的转置, D是一个对角矩阵, 对角矩阵A中的每一个对角元都是A的特征值。对于一个方阵A,我们总能找到一种特征值分解的方式,A可以表达为 (1)所示的形式,但当A不是一个方阵时,我们需要知道是否也...
2020-02-25 14:53:11
768
原创 SVN分支与主线合并测试
SVN trunk中有工作副本,代码为主线版本,而建立了分支为Branch,存储着客户需求的修改的代码,我针对不同的客户需求在branch上建立有分支,当客户的软件跑得较为稳定的时候,重新合并到trunk中,使得trunk的代码版本和branch的修改需求合并。具体的做法是(1)提交现有的分支端的代码,(2)Switch到主线trunk端,(3)在SVN中选择merge功能,以下是...
2019-12-13 18:58:46
906
原创 C# 调用 opencv 写的C++函数接口实现方法
C# 调用 C++ 函数实现方法C# 调用 C++ 函数比较复杂的是结构体的封装,一般数据类型可以简单地转换为C# 的数据类型即可,对于结构体类型的传递或者是结构体中包含指针,结构体嵌套传递都会比较复杂、结构体传递的方法例子:C# 函数封装C++ 结构体 参考https://blog.csdn.net/sdl2005lyx/article/details/6801113图像二值化...
2019-12-12 17:50:39
588
原创 OpenGl 显示2D图像
Opengl的认识Opengl 显示2D图像相对于在平台采用接口的方式,效率上是高一些的,因为使用了较少的CPU运行时间。学习Opengl时间不长,仅仅对管道的方法有所了解,Shade的方法有时间再去学习;Opengl的版本有比较多,Qt对Opengl有相应的模块,不过使用起来和常见的Win32程序有所区别,在Qt中包含了两个窗口类来支持Opengl,QGLWidget和QOpenglWi...
2019-08-29 16:39:49
3525
原创 Opencv 长宽字节对齐访问
在图像处理像素访问如果没有考虑字节对齐,会出现计算出的图像的数据是不正确的,出现“歪斜”现象。图像使用拉布拉斯算子进行锐化,结果是不正确的。//主程序Mat image = imread("2.jpg");//源图像Mat biggerImg_CUBIC(Row_B, Col_B, CV_8UC3);resize(image, biggerImg_CUBIC, bigger...
2019-08-24 09:13:02
483
转载 形态学原理(转载)
原文链接:https://blog.csdn.net/Chaolei3/article/details/79618602数学形态学操作可以分为二值形态学和灰度形态学,灰度形态学由二值形态学扩展而来。数学形态学有2个基本的运算,即腐蚀和膨胀,而腐蚀和膨胀通过结合又形成了开运算和闭运算。开运算就是先腐蚀再膨胀,闭运算就是先膨胀再腐蚀。二值形态学粗略的说,腐蚀可以使目标区域范围“变小”,其实...
2019-08-23 15:16:10
6222
原创 正态分布矩母函数
正态分布矩母函数的求解必要公式推导求的是∫exp(-(x^2)/2)dx,我们先考虑他的平方(∫exp(-(x^2)/2)dx) * (∫exp(-(x^2)/2)dx) = (∫exp(-(x^2)/2)dx) * (∫exp(-(y^2)/2)dy) = ∫∫exp(-(x^2 + y^2)/2)dxdy这里把第二个积分的积分变量从x换成了y,这是可以的再用极坐标变换x = rc...
2019-08-11 22:41:35
32938
5
原创 VMare 安装虚拟机 问题记录
由于一些老版本的代码需要在win7 32位上跑,因此得安装win7的虚拟机。使用DiskGenius分区后,启动出现NTLDR is missing 的错误,原因是系统启动项顺序不对,启动狂按F2,修改为CD光盘启动。在系统分区后安装系统到第一分区出现了Units specified dont exist,原因是VMware光盘的“虚拟设备节点””默认设定为SCSI,从光盘启动需要设置设备...
2019-07-12 11:58:53
163
原创 MYSQL 学习笔记
曾尝试用Qt自带的接口对数据库进行访问,发现效率不如原本自带的接口高,所以就采用了MySQL提供的C语言接口。写SQL语句难度并不大,应该是我的数据库存储需求也复杂吧。对比较重要的几点做一下记录,以便后续需要的时候进行深入。(1)数据库的类型数据库引擎有默认是InnoDB,这种格式如果要将其导入到其他主机的或者移植是通道SQL语句导入导出的方式,而MyISAM则可以直接将文件拷贝到新主...
2019-07-11 08:46:11
265
原创 Qt 给图片加文字出现乱码问题
分析思路调试发现字符串拷贝函数拷贝后的dst字符和常量字符串的对应数据字节不一致,一直在找strcpy的问题,再而发现调试期间查看字符一个中文占2个字节,而拷贝后一个中文占3个字节,定位到了是字符编码问题。解决方式工程采用execution_character_set("utf-8")进行编码,给图片写中文采用这位博主的方法,https://blog.csdn.net/wanggao_19...
2019-06-15 09:23:44
577
原创 Opencv LineMod源码阅读
linemod 算法来自:Gradient Response Maps for Real-Time Detection of Textureless Objects,Dominant Orientation Templates for Real-Time Detection of Texture-Less Objects computeResponseMaps 的函数接口 ...
2019-05-22 09:20:28
4080
2
原创 Opencv 仿射变换原理代码解析
仿射变换原理仿射变换是线性变换,有一张图可以很好地展示放射变换的效果其实仿射变换是透视变换的一种特例,但是透视变换的自由度更高,3*3的矩阵表示,透视变换的自由度是8,而放射变换可以用2*3的矩阵表示,【A B】 A是2*2的旋转部分+缩放因子S,而B是平移部分+缩放因子,是一个5个自由度的参数矩阵。典型的放射变换包括平移,缩放和旋转。其中Opencv中的旋转由于是绕某个图像坐标...
2019-05-22 09:19:33
2821
原创 Qt 跨线程连接信号槽出现connect成功,不进入槽函数的问题解决
当图片比较大的时候,获取图像中像素信息的计算耗时可能会增加一点,Debug模式偶尔会从1ms->10ms不等,分辨率是1000万像素的图像,所以做了一个线程去处理。问题:connect(&m_pixelwork,SIGNAL(PixelInfo(QImage::Format,QColor,int,int,int,int),this,SLOT(ShowPixel(QImage:...
2019-05-08 12:15:05
7864
1
原创 Opencv 指针指针用法问题
Opencv中Ptr这个类是一个智能指针原本的用法://method 1 delete problemlinemod::ColorGradient cmodelity;cmodelity = linemod::ColorGradient(30, 15, 60);std::vector< Ptr<linemod::Modality> > modalities;/...
2019-04-26 15:14:34
998
原创 无法解析外部符号LINK2019
程序经常会出现此类错误,最近也遇到过几次,总结起来主要都和lib文件有关系。(1) 编译同事DLL文件的时候,由于同事的DLL头文件写法不正确,出现了此类错误,如下宏定义,如果在其中一处少写了extern"C",会导致字符编码不同,最后在编译器找函数的时候,就会出现找不到对应的名字了#ifdef ADLL_EXPORTS#define ADLL_API extern"C"__decl...
2019-03-22 09:28:46
334
原创 Opencv + CUDA + 拓展代码 编译的记录
编译过Opencv3.0.0+CUDA 7.5+拓展库,随后编译了Opencv3.4+CUDA 9.2,编译源码首先要确定CUDA的版本以及opencv的版本是否对应,编译会出现unsupported gpu atch 'computer 2.0'的问题,字面理解意思似乎是不支持2.0的gpu架构了解到设定CUDA_GENERATION 是 Kepler就OK了,CMAKE文件不怎么理解...
2019-03-17 11:10:04
892
原创 中值滤波四个角有一些像素是零的原因
中值滤波会在图像的四周不补上几圈零,如果是5*5的模板就会补上两圈零。然后再给图像加上滤波模板,刚刚有三个位置的中值是0
2017-01-09 12:05:09
1346
1
转载 理解矩阵
http://blog.sina.com.cn/s/blog_5dd2e9270100bs3c.htmlhttp://blog.csdn.net/myan/article/details/647511
2016-09-20 00:42:32
210
原创 MFC读取文件夹中的文件,并且进行排序
使用MFC中的API进行读取文件夹里面的文件的时候,读取的顺序是按照硬盘存储的顺序进行读取的,因此读取的文件名字的序号不是从小到大排序。下面的代码可以实现从MFC中读取文件夹里面的文件名,同时还利用STL的方法进行了排序。//全局谓词bool SortbynumASC(const CString& x, const CString& y){ int nLeft, nRight; n
2016-09-06 18:04:01
2922
2
转载 MFC CString转const char*
起因是因为要实现一个UdpAddress实例,照示例程序的写法:UdpAddress address((LPCTSTR)ipadd); 提示没有匹配的构造函数,好吧看看构造函数都有神马,能以IP地址+端口号构造的只有:UdpAddress(const char *inaddr);百度了一下有网友说LPCTSTR就是const char *类型,但在这里看来显然是不一
2016-08-26 20:09:22
1603
转载 Unicode 字符集
看这篇文章,讲的很清楚(:)这是从其他地方拷贝过来的) UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。 UNICODE编译设置: C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE 在ProjectSetti
2016-08-23 10:03:58
1533
转载 OpenCV2:Mat属性type,depth,step
点击打开链接在OpenCV2中Mat类无疑使占据着核心地位的,前段时间初学OpenCV2时对Mat类有了个初步的了解,见OpenCV2:Mat初学。这几天试着用OpenCV2实现了图像缩小的两种算法:基于等间隔采样和基于局部均值的图像缩小,发现对Mat中的数据布局和一些属性的认知还是懵懵懂懂,本文对Mat的一些重要属性和数据布局做一个总结。 Mat的作用
2016-08-19 14:39:07
260
转载 消除相机透镜畸变
一般的针孔相机模型如下:三维坐标点经过透视投影变换,转换到一个图像平面坐标点。而相机透镜还存在一定的畸变,包括横向畸变和切向畸变。 因此,针孔相机模型又被扩展为以下模型:首先,世界坐标被转换为相机坐标,由X,Y,Z到x,y,z;然后,归一化,z=1处,x,y的投影坐标x`,y`;接下来,对投影坐标,进行畸变处理;
2016-08-17 10:06:11
2133
转载 C++内存分配
在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区,动态数据区包括堆区和栈区。以下是各个区的作用:(1)代码区:存放程序代码;(2)数据区 a.静态数据区: 在编译器进行编译的时候
2016-08-15 14:36:26
189
原创 摄像机标定
用opencv和matlab做了几次标定,对标定的结果自己做一些总结用opencv做标定的话,由于是自动识别棋盘格中的角点,会有识别不出角点的情况。如果是使用5*5的棋盘网格,opencv很难是被出来,使用更大的棋盘格7*7就好了很多。最终是否进行亚像素级别的检测也会对内参的数值有一定的影响。matlab做标定的时候手动点击棋盘格,一般识别不出来的情况就可以避免。现在我使用20副图片做
2016-08-11 09:40:09
389
转载 windows设备上下文的概念
关于设备场景,叫法颇多,有些书上说为设备环境、显示场景,更常见的叫做设备描述表或设备描述体。当然你爱怎么叫随你的便,我还是喜欢说为设备场景。那 么究竟什么是设备场景呢? 设备场景是一种windows对象,而windows则是一种图形环境,其图形系统令人难以自信地灵活和强大。而实质上,widnows下的所有绘图都是 通过设备场景进行的,而不是直接对窗口和设备本身进行。为了说明设备场景,很多书都拿
2016-08-06 22:57:03
6727
原创 Matlab 和 C++混合编程
Matlab 和 C++混合编程的方法主要有两种:(1)使用引擎来实现Matlab基本函数的功能,例如,实现数据可视化。(2)使用matlab的函数生成的dll动态库来实现对应m文件的函数功能。mcc -W lib:dlltest -T link:lib huatu_test.m命令 1 : mcc -W lib:dlltest -T link:lib
2016-07-27 14:48:41
886
转载 两步标定法
在直接线性标定方法中,并没有考虑相机镜头的非线性畸变,而在Tsai提出的两步标定法中很好的解决了这个问题。相关理论推导如下:1、相机畸变模型在前一篇文章中有提到,应该比较好理解。我们可以看出在上图中可以分以下几个坐标系:① 像机坐标系Oc② 图像像素坐标系Oi③ 世界坐标系Ow④
2016-07-25 16:31:58
3836
转载 相机数学模型
一、相机数学模型 相机模型为以后一切标定算法的关键,只有这边有相当透彻的理解,对以后的标定算法才能有更好的理解。本人研究了好长时间,几乎每天都重复看几遍,最终才会明白其推导过程。 我觉得首先我们要理解相机模型中的四个平面坐标系的关系:像素平面坐标系(u,v)、像平面坐标系(图像物理坐标第(x,y)、相机坐标系(Xc,Yc,Zc)和世界坐标系(Xw,Yw,Zw),在每一
2016-07-25 16:15:59
3905
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人