自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

转载 手眼标定的两种方式

1.手眼标定的两种情形  在工业应用中,手和眼(摄像机)的两种位置关系,第一种是将摄像机(眼)固定在机械手(手)上面,跟随手移动;第二种是摄像机(眼)和机械手(手)分离,眼的位置相对于手是固定的。第一种情况中我们要求的是相机坐标系和机械手坐标系的转化关系;第二种情况中要求的是相机坐标系和基础坐标系的关系。2.相机移动时,标定求解过程  用到四个坐标系,分别是基础坐标系,机械手...

2018-02-02 11:26:00 580

转载 SVD(奇异值分解)及求解最小二乘问题

1. SVD任意矩阵A(mxn), 都能被奇异值分解为:其中,U是mxm的正交矩阵,V是nxn的正交矩阵,Σr是由r个沿对角线从大到小排列的奇异值组成的方阵.r就是矩阵A的秩.2. Moore-Pseudo逆任意矩阵A, 若存在矩阵X, 使得:则称X是A的Moore-Pseudo逆, 简称广义逆, 记为A+.矩阵A的广义逆是唯一的, 并且可...

2018-01-30 13:13:00 464

转载 使用win32 API函数实现vc与arduino串口通信,通过vc发出指令,在arduino中点亮二极管灯...

想通过vc来点亮二极管灯,思路为:1、在arduino IDE编写好用于控制二极管灯程序,然后将其烧录到板子上2、在vc中编写串口程序,用于向串口发送指令,实现vc与arduino串口通信;在arduino中编写的程序:int buf; //定义串口发送的内容int pin=4; //二极管输出控制管脚void setup() { // p...

2015-05-07 14:58:00 306

转载 extern用法

头文件:state.h源文件:state.cpp其它源文件:t1.cppt2.cppt3.cpp,这些源文件都包含头文件state.h。需要定义一个全局变量供这些源文件中使用:方法如下1、在 state.h声明全局变量: extern int a;2、在state.cpp中定义该全局变量:int a = 10;这样其它源文件就可以...

2015-04-16 16:45:00 102

转载 Opencv中位深数据IPL_DEPTH_8U与IPL_DEPTH_64F的图像像素数据的转化

需要自己写颜色空间转换的小程序,其中涉及到LOG运算及atan运算,所以在运算过程中用到double类型数据,但最后许转换为IPL_DEPTH_8U类型,故申请了一幅图像IplImage* hue64f = cvCreateImage( cvGetSize(src),IPL_DEPTH_64F, 1 );来存储中间变量。但是问题也随之而来。问题1:按照公式计算完,然后再应用Conve...

2015-01-15 11:11:00 584

转载 将Mat转化为IplImage

void ConnectedComponents(Mat &mask_process, int poly1_hull0, float perimScale, int number = 0, Rect &bounding_box = Rect(), Point &contour_centers = Point(-1...

2015-01-10 08:11:00 127

转载 程序运行时间统计

程序运行时间统计(单位毫秒):控制台可行(MFC还没有试验)1)在头文件中加入"windows.h“2)在程序中加入1 DWORD t0=GetTickCount();2 3 运行的程序4 5 6 DWORD t1=GetTickCount();7 std::cout<<t1-t0<<std::endl;...

2015-01-05 12:24:00 119

转载 使用c++编写的大津算法

OTSU算法OTSU算法也称最大类间差法,有时也称之为大津算法,由大津于1979年提出,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度特性,将图像分成背景和前景两部分。因方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前...

2015-01-04 20:54:00 200

转载 机器视觉系统设计的难点都有哪些

那么,机器视觉系统设计的难点都有哪些?本文主要总结了一下五点,  第一:打光的稳定性  工业视觉应用一般分成四大类:定位、测量、检测和识别,其中测量对光照的稳定性要求最高,因为光照只要发生10-20%的变化,测量结果将可能偏差出1-2个像素,这不是软件的问题,这是光照变化,导致了图像上边缘位置发生了变化,即使再厉害的软件也解决不了问题,必须从系统设计的角度,排除环境光的干扰,同时要...

2015-01-04 10:26:00 213

转载 MFC中知识总结

1、在动态创建模态对话框的时候,一定要在析构函数中手动调用我们定义好的析构函数,手动删除此动态对象来销毁对话框,手动添加析构函数代码如下:1 CAdditionDlg::~CAdditionDlg() 2 { 3 // 如果非模态对话框已经创建则删除它 4 if (NULL != m_pTipDlg) 5 { 6 ...

2014-12-23 08:08:00 108

转载 extern使用方法总结

1.extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明。2.如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有区别:extern int f(); 和int f();如果定义函数的c/cpp文件在对应的头文件中声明了定义的函...

2014-12-22 20:45:00 129

转载 opencv程序错误:Microsoft C++ 异常: 内存位置 0x00d4f440 处的 cv::Exception。

opencv程序错误:Microsoft C++ 异常: 内存位置 0x00d4f440 处的 cv::Exception。图片:解决方案:打开“调用堆栈”窗口,看看是哪个函数抛出的异常。调用堆栈可以在调试->窗口->调用堆栈菜单出打开。转载于:https://www.cnblogs.com/gzy-zju-edu/articles/4178288...

2014-12-22 15:21:00 208

转载 OpenCV中CvFont的定义和操作

1 CvPoint pt; 2 pt.x = point.x - text_size.width/2; //这样的设置为字体(左右)居中对齐 3 pt.y = point.y + (text_size.height+baseline)/2; //这样的设置为字体(上下)居中对齐 4 5 if(i==0) pt.y = (AVIFRAME_COLO...

2014-12-22 13:39:00 642

转载 MFC编程 关于坐标之间的转换

我新建了一个MFC对话框工程,,,拖了一个图像控件,那么下面两个问题该如何解决呢?如何将电脑屏幕的坐标转换为客户区的坐标?先获取屏幕坐标;调用程序客户区所在窗口对象的ScreenToClient函数就可以把屏幕坐标转换为程序客户区坐标。如何将客户区的坐标转换为某个控件的坐标?比如:控件的ID为:IDC_mPic。先把客户区坐标转换为屏幕坐...

2014-12-22 10:24:00 303

转载 在按钮控件上加载位图,形成位图按钮

1、建立基于对话框的MFC,工程名为test,在对话框添加button控件,并将button控件的Owner Draw的属性改为true;2、添加一个子类CMyButton继承于CButton类;3、在CtestDlg类中添加成员变量CMyButtonm_MyButton,并在OnInitDialog中添加:  m_MyButton.SubclassDlgItem(IDC_...

2014-12-21 22:08:00 212

转载 自绘控件的子类化方法

1.新建一个基于对话框的MFC程序。2.在工程中添加一个新类CMyButton,基类选择CButton。3.然后转至新生成的MyButton.h头文件中,将鼠标放在类名CMyButton上点击一下,打开“属性”窗口,在“消息”按钮下为此类添加WM_LBUTTONDOWN,WM_LBUTTONUP消息,并重写DrawItem虚函数(这个函...

2014-12-21 16:54:00 150

转载 MFC绘制动态曲线,用双缓冲绘图技术防闪烁

先上效果图随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新。一、如何绘制动态曲线。所谓动画,都是一帧一帧的图像连续呈现在用户面前形成的。所以如果你掌握了如何绘制静态曲线,那么学会绘制动态曲线也不远啦,只需要创建一个定时器(比如调用MFC中的SetTimmer函数),每隔一定时间(比如1ms),调用OnPaint或者OnDraw函数,绘制当前帧图像即可。这里需要注意的是...

2014-12-21 15:34:00 190

转载 静态添加位图资源总结

之前总是导入位图资源,选择文件后缀名是“bmp”,但是在位图资源中“Bitmap”,怎么都不能显示导入图像的ID号,我一直很郁闷,在网上搜索也是无果。首先,简单添加位图的流程:1、首先在资源视图中.rc*,点击右键,选择添加资源2、在弹出对话框中选择Bitmap,再选择导入3、在打开的文件对话框中,选择后缀名为bmp文件即可;需要注意的事项:1)导入与新建的区别:...

2014-12-20 09:59:00 159

转载 Invalidate与UpdateWindow测试

今天终于明白,学编程,觉得不理解就编程测试,终于明白中这其中的道理,为了验证Invalidate和UpdateWindow,编写MFC程序来验证下:1、创建基于对话窗MFC,在对话框中添加一个picture control 和两个按钮,一个用来填充控件,另一个使其重绘:2、在OnPaint中添加代码:1 CDC* dc=GetDlgItem(IDC_P...

2014-12-19 21:44:00 155

转载 OnMeasureItem和OnDrawItem的区别和联系(转载)

我们在做程序设计时界面与功能,那个更加吸引用户的兴趣呢?这是一个很难回答的问题。拥有美丽的外观,软件就成功了一半。界面由控件、工具栏、菜单、窗体等元素组成,对他们进行美化就能得到一个美丽的界面。目前界面编程技术包括MFC、win32 SDK、CJLibrary、WTL以及一些界面开发包。文本介绍MFC界面编程技术。一、控件自绘控件的生成包括静态控件和动态控件的生成。动态控件...

2014-12-19 15:38:00 162

转载 对话框动态控件的创建 在Picture Control控件上显示图片 (转载)

在对话框上的控件是MFC类的一个具体对象,其对应的变量内包含了类的数据成员和函数成员。当在对话框之上使用静态控件时,可以根据类向导来为每个控件添加消息、响应函数以及变量。当需要在对话框中动态的创建某个控件时,就需要手动为动态控件添加消息、响应函数及变量,即是手动来代替类向导。动态创建控件时,可按照以下步骤进行:(1) 明确控件所属于的类每一个控件都对应着一个类,如按钮But...

2014-12-19 09:26:00 262

转载 MFC中从一个类向其他类发送消息的方法

假设准备从A类向B类发送一个消息WM_MSG首先:在B类中定义这个用户自定义消息,消息响应函数,并关联消息和消息响应函数然后:在A类头文件中包含B类的头文件,并定义一个B类类型的指针成员变量,假设为*memB;之后就可以使用memB->PostMessage()或者PostThreadMessage()或者SendMessage()向B类发送消息即可转载于:http...

2014-12-18 21:36:00 354

转载 MFC Tab Control控件的详细使用(转载)

1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其...

2014-12-18 18:54:00 205

转载 CFileDialog详解

1、CFileDialog构造函数1 CFileDialog:CFileDialog(BOOL bOpenFileDialog,2 LPCTSTR lpszDefExt=NULL,3 LPCTSTR lpszFileName=NULL,4 DWORD dwFlags = OFN_HIDEREADONLY | ...

2014-12-18 08:11:00 361

转载 修改MFC窗口标题和图标

MFC程序的默认的标题是“无标题-title”,其中title是应用程序的名称,我们应如何修改MFC窗口标题来符合自己的要求? MFC程序的文档类中定义了一个虚函数SetTitle,用于设置窗口标题的前半部分,如果只是要修改“无标题”部分,可以重载文档类的该函数。窗口标题的后半部分可以通过SetWindowText设置,也可以编辑字符串资源中的IDR_MAINFRAME字符串,...

2014-12-17 21:43:00 91

转载 PreTranslateMessage

1、简介:PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码.  MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控...

2014-12-17 20:17:00 95

转载 LBP简介(转载)

LBP(local binary pattern)是一种用来描述图像局部纹理特征的算子。原始的LBP于1994年提出,它反映内容是每个像素与周围像素的关系。后被不断的改进和优化,分别提出了LBP旋转不变模式、LBP均匀模式等。一:原始的LBP 给出一个简单的案例计算LBP:如下图,周围8个像素点比中间点像素值大(或者相等)的记为1,小的记为0,这样就得到二值图,然后按顺时针方...

2014-12-16 20:53:00 744

转载 提取元素的轮廓及形状描述子(以一种新的模式来做)(转载)

先看提取轮廓的代码: 1 Mat image = imread("D:/picture/images/binaryGroup.bmp",0); 2 if(!image.data) 3 return -1; 4 imshow("源图像",image); 5 6 //获取轮廓 7 std::vector...

2014-12-16 18:53:00 175

转载 黑白相机

1、用黑白相机获取的图像,有RGB三个通道,但是每个通道的数值都是相等的。转载于:https://www.cnblogs.com/gzy-zju-edu/articles/4162679.html

2014-12-14 16:22:00 340

转载 IplImage与CvMat之间相互转化

1、IplImage转化为CvMat结构: 1 void main() 2 { 3 IplImage* src=cvLoadImage("2.jpg",CV_LOAD_IMAGE_UNCHANGED);//三通道的彩色图像 4 CvMat* mat=cvCreateMat(src->height,src->width,CV_32FC3); ...

2014-12-14 16:20:00 221

转载 MFC中保存文件时候,需要保存弹出对话框的路径,并将其转化为const char*形式...

1、先看一段程序 1 void CTextShow::OnBnClickedSavebtn() 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 CFileDialog dlg(FALSE,L"bmp",L"未命名.bmp",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,L"文件格式(*.bmp)|*.bmp|...

2014-12-14 11:42:00 185

转载 在MFC中指定的控件中显示IplImage的灰度或者二值图

Opencv作为视觉开源软件,具有强大图像处理功能,在MFC中,如何直接将IplImage通过一定的转化,实现在指定控件显示图像。1、StretchDIBits 函数由于OpenCV位图结构中的像素数据与DIB中的像素具有类似的存储结构,可以考虑直接用来在视图窗口中显示。知道位图像素的存放地址直接往视图窗口显示的函数虽然不多,但还是有Windows API中的StretchDIB...

2014-12-14 10:43:00 224

转载 调色板原理 & 编程

逻辑调色板结构LOGPALETTE,该结构定义如下:  typedef struct tagLOGPALETTE  {    WORD palVersion;  //调色板的板本号,应该指定该值为0x300;    WORD palNumEntries;//调色板中的表项数,对于灰度图像该值为256;    PALETEENTRY palPalEntry[1];//调色板中的颜色表项,由...

2014-12-13 16:14:00 242

转载 霍夫直线变换

1 void main() 2 { 3 IplImage* src=cvLoadImage("1.jpg",CV_LOAD_IMAGE_UNCHANGED); 4 IplImage* gray=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1); 5 cvCvtColor(src,gray,CV_RGB2...

2014-12-12 08:45:00 153

转载 #if 和#ifdef的区别

#define TARGET_LITTLE_ENDINA 1#define TARGET_BIG_ENDINA 0#ifdef TARGET_LITTLE_ENDINAcall little endina function#elsecall big endina function#endif不管把TARGET_LITTLE_ENDINA和TARGET_BIG_ENDINA定义成0或者...

2014-12-12 08:29:00 106

转载 Opencv中随机数

RNG初始化随机数生成器状态CvRNG cvRNG( int64 seed=-1 ); seed64-bit 的值用来初始化一个随机序列函数 cvRNG 初始化随机数生成器并返回其状态。指向这个状态的指针可以传递给函数 cvRandInt, cvRandReal 和 cvRandArr . 在通常的实现中使用一个 multiply-with-carry generato...

2014-12-11 19:45:00 138

转载 opencv中数据类型

CV_32FC1和CV_64FC1,前者是32位数据,后者是64位数据。因此前者类型的数据必须以指向32位数据类型的指针存取,否则会报错,而后者类型的数据必须以指向64位数据类型的指针存取,否则会报错。也就是说,你如果用cv_32fc1,那么后面对该矩阵的输入输出的数据指针类型都应该是float,这在32位编译器上是32位浮点数,也就是单精度。你如果用cv_64fc1,那么后面对该矩阵的...

2014-12-11 14:02:00 103

转载 c++中vector容器用法(一)

1 基本操作(1)头文件#include<vector>.(2)创建vector对象,vector<int> vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。(5)使用迭代器访问元素.1 vector<int&...

2014-12-11 08:31:00 113

转载 C语言基础知识三

1、isspace函数 函数说明:检查参数c是否为空格字符,也就是判断是否为空格(' ')、水平定位字符('\t')、归位键('\r')、换行('\n')、垂直定位字符('\v')或翻页('\f')的情况。 返回值:若参数c为空格字符,则返回TRUE,否则返回NULL(0) 例子:1 int i;2 char str[]="123c@#FD\t...

2014-12-10 23:28:00 197

转载 fgets函数使用时应该注意的问题

一、原型是char *fgets(char *s, int n, FILE *stream);作用是从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。    形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream是文件指针  例:如果一个文件的当前位置的文本如下  Love...

2014-12-10 23:12:00 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除