自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (2)
  • 收藏
  • 关注

原创 Puma560 机器人DH变换

最近在折腾关节机器人求解问题。要面临的第一个问题就是DH变换,关于puma560机器人的DH变换,不同地方出现不同版本,很是困惑。所以,有必要自己按规则走一遍。

2017-04-14 15:32:33 19093 13

原创 python学习之 list tuple range

# Sequence Type --- list, tuple, range# list 是一个可变序列(mutable sequence), 数据项可具有不同的类型,用','分割数据项,用[]括起来# tuple 是一个不可变序列(inmutable sequence),元素不能修改,数据项可具有不同的类型,用','分割数据项,用()括起来# range 是一个关于数字的不可变序列(inm

2017-04-01 14:42:02 1112

原创 python学习之字典

#字典的创建## 1 直接法dict1 = {'Name': 'TianXin','Nickname': 'Lele','Age':3}## 2 使用dict()方法,通过其它映射(字典)或者(键,值)这样的序列对建立items = [('Name','TianXin'),('Nickname','Lele',),('Age',3)]dict2 = dict(items)dict3 =

2017-03-31 10:02:28 953

原创 一个目前没找到原因的问题

用np.linalg.solve(a, b) 解方程的问题。错误消息: r = gufunc(a, b, signature=signature, extobj=extobj)TypeError: No loop matching the specified signature and casting was found for ufunc solve1。既然 Ax=b 无法解

2017-03-30 10:28:44 6441 3

转载 Windows GDI贴图闪烁解决方法 [转载]

一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。

2017-03-15 16:04:14 1102

原创 windows程序设计读书笔记四

1、建立一个内存DC hdcMem = CreateCompatibleDC(hdc); 此时,内存DC的显示表面是单色、1个像素宽、1个像素高。即显示表面仅仅1位。2、CreateCompatibleBitmap创建一个与设备兼容的位图, ::GetClientRect(hwnd, &rc); hBitmap = CreateCompatibleBitmap(hdc, rc.right-rc.left, rc.bottom-rc.top);

2017-03-15 15:19:13 541

原创 用opencv svm 折腾的识别程序

前面有过用halcon识别字符,现在用opencv折腾下。比较一下排除svm算法的问题,对我们来说就是构建合适的分类数据, 在这还是采用《Mastering OpenCV with Practical Computer Vision》中说的 水平方向字符投影 + 竖直方向字符投影 + 缩小后的字符像素信息矩阵(把它平铺)将所有16个字符的信息 放在 一个 2维矩阵中 16X (characterOriginalWidth + characterOriginalHeight + characterWid

2017-03-14 08:39:48 713

原创 折腾opencv svm 而想到的

突然觉得要做好识别,重要的点会出现在如何定义特征上面。这个特征就是你喂给算法的数据。一幅图带有的信息量实在太大  如 面积、 轮廓周长、灰度、连通域等等,总之,任何一种良好的描述都可以。 如 某个方向的投影之类。 如何利用好这些特征 才能让机器又快又准的识别 会是 做识别 分类的重要部分或者难点吧。突然想到 数据挖掘 这词了。  有了海量的数据, 如何去发掘 对项目有用的数据。以前研究

2017-03-11 11:43:45 777

原创 如何使用opencv中的svm分类器

最近掉进了机器学习的坑了。算法的开发应该是科学家的事,但算法的应用就是工程师的事了。Halcon提供了的工具太自动化了。当你还没意识过来,结果就出来了。想用opencv来实现一个简单的字符识别程序。分类器就选svm吧。(目前就接触了knn svm,但是感觉knn太暴力)。svm提供一种二分法的手段。对于解决是非问题再好不过了。在《Mastering OpenCV with Practical Co

2017-03-11 10:55:36 3832

原创 Qt QLCDNumber Class 与 halcon ORC识别

突然看到 QLCDNumber 控件,脑子一热,ORC识别有素材了,用QLCD Number 生成  一串16进制的字符。然后用halcon来做识别。1、控件截图操作QPixmap::grabWindow(winId).save(qstring,"bmp");2、随机数生成操作QString LCDNumbers::generateUniqueRandomNum

2017-03-04 14:31:06 1700 1

原创 QObject::moveToThread() 打开相机

这也许是Qt推荐的方法吧。The QThread class provides a platform-independent way to manage threads.QThread类提供了一个跨平台的方式管理线程A QThread object manages one thread of control within the program.QThreads begin exe

2017-03-03 11:31:26 1254

原创 QThread 子类化 打开相机

QThread subclass 的用法:  1、派生出QThread的子类WorkerThread;2、重写 run() 函数,即线程需要处理的逻辑、事情;3、在调用线程的地方,将该子类实例化,4、链接信号和槽 5、通过调用 对象的start(),启动线程;class WorkerThread : public QThread { Q_OBJECT void ru

2017-03-02 20:40:41 820

原创 Qt+halcon 第二个程序 定时器类QTimer的应用

以下内容来源于帮助说明The QTimer class provides repetitive and single-shot timers.The QTimer class provides a high-level programming interface for timers. To use it, create a QTimer, connect its timeout() si

2017-03-01 14:29:08 1233

原创 Qt+halcon 第一个程序 QObject类的定时器应用

定时器或线程手段就是用来解决这个问题的。 经过各种资料的搜刮可知,定时器方案又分为:1、QObject类的定时器, 2、定时器类QTimer。线程方案又有四种:1、继承QThread、2、继承QRunnable、3、使用moveToThread、4、使用QtConcurrent::run;关于QObject类的定时器

2017-03-01 11:44:57 1619 1

原创 windows程序设计读书笔记之练习一

看完第5章,突然想写一个类cad的程序,先做简单功能描述及可能用到的函数1、画直线,线宽、线形可以设置2、鼠标滚动,放大 缩小, 放大的中心区为鼠标位置。

2017-02-25 14:52:52 545

原创 windows程序设计读书笔记三

我想我知道为什么CAD软件中,当鼠标移动很快时,图像会跟不上了。鼠标移经窗口的客户区时,Windows系统不会为鼠标经过的每个象素位置都产生WM_MOUSEMOVE消息。程序收到的WM_MOUSEMOVE消息个数取决于鼠标硬件和窗口过程处理鼠标移动的速度。换言之,如果消息队列里还未有处理WM_MOUSEMOVE消息,Windows就不会重复向消息队列中添加该消息。鼠标的捕获如何实现

2017-02-22 20:02:00 565

原创 windows程序设计读书笔记二

绘图基础这一章强调最多的莫过于 资源的取得 及 释放1、希望在图形输出设备上绘制图形,必须首先获取设备环境(DC)的句柄。在GDI函数中这个句柄作为一个参数,告诉windows在哪个设备上进行绘图。对设备的使用完毕时,必须释放该句柄。a、如果在处理一条消息时获取了视频显示的设备环境,则应该在退出当前窗口过程之前释放它。释放句柄后,它将不再有效。对打印机设备环境句柄,规则并没这么严格。处

2017-02-21 17:12:42 611

原创 windows程序设计读书笔记一

1、注册窗口类时,类的名称不能重复,当前面已经注册了一个名字的类(lpszClassName),后面的窗口类就不能再用这个名字了。以下代码用 szAppName[] 及szAppName1[] 放置两个类名字符串,若szAppName1[] 的内容与szAppName[]一样时,在第二次注册时不会成功,由GetLastError()的返回值是1410 可以到 〖1410〗-类别已存在。

2017-02-20 14:10:02 637

原创 亚像素与halcon

朋友发来两个小项目,要求亚像素精度。突然想问几个问题:1、何为亚像素?2、何为亚像素精度?3、使用亚像素测量,系统应注意什么?1、何谓亚像素?面阵摄像机的成像面以像素为最小单位。例如某CMOS摄像芯片,其像素间距为5.2微米。摄像机拍摄时,将物理世界中连续的图像进行了离散化处理。到成像面上每一个像素点只代表其附近的颜色。至于“附近”到什么程度?就很困难解释。两个像素之间有5.2微米的距离,

2017-02-14 13:29:49 19059 3

原创 三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之二

在实现这程序的过程中,关于字符串的使用。1、CString类型加法。指令操作是由各个功能区组成的。Instruction = pParentDlg->m_StationID + pParentDlg->m_PCID + Instruction + pParentDlg->m_WaitingTime + SoftElementType+ SoftElementNum + m_SoftEl

2017-02-11 14:27:52 5001 2

原创 三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一

阅读内容为:FX系列微型可编程控制器用户手册(通讯篇)中计算机链接功能章节。采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。编写一应用程序,使得对plc的操作能够按照协议翻译成字符串并从串口输出。程序基本框架:1、串口功能设置区2、协议设置区3、指令设置区4、串口输出显示区5、串口输入显示区(包括翻译功

2017-02-11 11:42:16 46942 12

原创 相机标定之一:相机模型(读multiple view geometry in computer vision)

相机是3D世界和2D图像之间的一种映射。

2017-01-09 16:53:52 10641 2

原创 频率域滤波基础之五(读数字图像处理学习halcon)

选择性滤波在很多应用中,其中感兴趣是处理指定的频段或频率矩形。第一类滤波器分别称为带阻滤波器或带通滤波器。第二类滤波器称为陷波滤波器。1、带阻滤波和带通滤波D(u,v)是距离频率矩形中心的距离,D0是带宽的径向中心,W是带宽。一个带同滤波器可以用从低通滤波器得到高通滤波器的相同的方法从带阻滤波器中得到halcon生成理想带阻带通和高斯带阻带通的代码read_im

2017-01-06 13:35:47 7146

原创 频率域滤波基础之四(读数字图像处理学习halcon)

频率域内的拉普拉斯算子

2017-01-06 13:35:17 1686

原创 频率域滤波基础之三(读数字图像处理学习halcon)

低频对应于图像变化缓慢的灰度分量,前面我们通过衰减高频成分来平滑图像。高频则对应于图像中变化快速的灰度变化。这些通常是物体的边缘及噪声。以下我们将通过高通滤波来实现图像的锐化。高通滤波会衰减傅立叶变换中的低频分量而不扰乱高频信息。理想高通滤波器 D0截止频率halcon程序read_image (Image, 'D:/halcon work/fft/有票.bmp')rgb1_

2017-01-06 07:50:49 5322

原创 频率域滤波基础之二(读数字图像处理学习halcon)

二维离散傅立叶(DFT)变化及其反傅立叶变换(IDFT)傅立叶变换通用形式对通用形式来讲,c=1,s=-1即为傅立叶变化(图像空间域转频域);c=1/MN,s=1即为逆变换(频域转空间域)halcon算子fft_generic(Image : ImageFFT : Direction, Exponent, Norm, Mode, ResultType : ) 通过参数设

2017-01-05 16:06:35 8479 3

原创 频率域滤波基础之一(读数字图像处理学习halcon)

如果不了解在图像滤波中如何应用傅里叶变换和频率域的基本知识,要彻底理解这一领域也是不太可能。

2017-01-05 09:48:43 6563 1

原创 灰度变换与空间滤波之二(读数字图像处理学习halcon)

直方图处理灰度级范围(0,L-1)的数字图像的直方图是离散函数h(rk)=nk,  rk表示第k级灰度值,nk是图像中灰度为rk的像素个数。在实践中常用MN表示的图像像素总数除t

2017-01-04 10:31:12 7087 1

原创 灰度变换与空间滤波之一(读数字图像处理学习halcon)

接触机器视觉的东西到现在有好长一段时间了,从以前折腾opencv到现在折腾halcon,这么浑浑噩噩的一年折腾,也没折腾出什么深刻的认识。回过头来想想,自己的学习过程完全是建造空中楼阁。提到的opencv及halcon的大部分资料都在介绍函数,算子等。因此决定,从基础做起,以数字图像处理这本书来理解halcon里的算子的想法的学习方式孕育而生。前提以8bit灰度图作为研究对象(L=256)

2017-01-02 17:58:43 12170 6

原创 [问题保存笔记]基于halcon开发的模板匹配的软件问题

1、在使用相机抓图时,相机第一次触发,没有图像。一开始怀疑软件触发后,去取图,可能相机并没准备好,因此加sleep延时,也没解决。不知道什么原因。代码流程: CameraSetSnapMode(0, CAMERA_SNAP_TRIGGER); int m_width = 0, m_height = 0, len = 0; CameraGetImageSize(0, &m_

2016-11-29 08:57:27 2062

原创 关于FX3ga PLC modbus的使用

经过这几天对modbus的摸索,终于弄明白了如何使用FX3ga PLC来实现modbus的通讯了。modbus协议基础(以下图片了解就可以,不了解也不影响使用,如果使用pc机来实现主/从站就要研究这玩意了)FX3ga modbus硬件实现通讯设置,按照硬件的连接明确通道号(ch1,ch2)不同的通道号,数据寄存器不同1、通信格式的设置(针对串口的收发,数据长度,奇偶

2016-11-16 11:04:12 10247 1

原创 关于串口通讯

最近在实现pc机与plc的通讯,plc是三菱的FX3ga,再配上相应的通讯模块FX3u-485ADP-MB,pc上用usb转串口的接口。硬件上条件算是完成。现在准备在软件上下功夫了。一开始就头晕了,以前写的arduino,vc的程序都是用成熟的函数或者类,深层次的问题都没想过。串口到底是怎么发送数据的?难道就是高电平 低电平 在那嘚瑟?那怎么算开始?怎么算结束?怎么样数据有效或无效呢?在使用串

2016-11-11 21:32:55 788

原创 MFC 控件变量

一直以来都不喜欢去用控件变量去操作控件的相关操作,而选择通过控件ID的模式来操作GetDlgItem(IDC_XXXX)->Fuctions。其实选择这个模式不外乎是在躲避对控件变量操作的不熟悉。今天特意去阅读了相关资料。控件关联变量时,1,可以有控件类别(Control);2,也可以有值类别(Value);对于控件类别的变量,1,在类定义中会增加一个变量 CButton m_cMyB

2016-09-03 15:09:02 1448

原创 临界区使用问题

刚才编写程序时,由于临界区使用的问题。1、临界区定义后,却忘记了初始化;这个问题出现了好多次了。2、在主进程中使用了临界区,导致程序无响应了;临界区头文件#include"afxmt.h"CRITICAL_SECTION CriticalSection;#define LOCK_SECTION EnterCriticalSection(&Critical

2016-08-27 14:53:14 613

原创 MFC CFileDialog使用

昨天,TG说要写一个保存图片的操作。虽然Halcon里提供了保存图片的函数write_image(Image : : Format,FillColor,FileName : )  但是仅依靠这个函数是无法实现界面友好的。因此要做出一个具有windows风格的保存操作,还是得使用MFC的东西。CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种

2016-08-27 09:26:07 6638

原创 理解事件Event在线程同步中的应用

场景:按下自动运行按钮后,数据不停的从1累计到50,为一个完整周期,该周期不停的循环;当按下停止按钮后,数据完成当前周期后,停止变化。细节:1.初始化后,自动运行按钮有效,自动运行按钮无效;2.按下自动运行后,将自动运行按钮无效,同时停止运行按钮有效;3.若不按停止运行按钮,Edit框的数据将每50个一次循环;4.按下停止运行按钮后,数据执行完当前周期后停止。在

2016-08-15 21:26:15 588

原创 在mfc的图形控件嵌入opencv的图形窗口

在mfc中要显示opencv的图形有以下办法:1、Cvvimage 类里的函数 DrawPicToHDC( IplImage *img, UINT ID) 。现在opencv 3.0已经丢弃了这个类,需要自己去添加。2、StretchDibBit的方法。有一个Mat 和位图列数对应问题。3、能否将opencv的图形窗口嵌入图形控件呢?在初始化函数中加入如下代码。 named

2016-07-30 17:45:23 4610 5

原创 关闭摄像头 结束线程

前面提到用线程打开了摄像头程序。现在我们该如何去关闭它。该程序是在线程内的一个死循环,如果循环过程中来监听某一变量的变化,做条件来结束循环。即该线程也结束。bool CcamShowDlg::CameraOpen(){ capture.open(0); if (capture.isOpened() == 0) { AfxMessageBox(_T("摄像头初始化失败")); r

2015-08-17 19:31:28 3240

原创 线程破解程序死循环

最近用opencv+mfc做了一个简单的程序(点击button后,打开视频,另一个button关闭视频)。问题来了,读视频的程序是个死循环。怎么解。因此,应该考虑线程的问题了。让视频程序在线程里跑。何为线程?线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是

2015-08-17 17:34:04 1623

原创 轮廓处理之四

今天本打算对一黄色网布做位置形状检查。用手机拍了一张白底的照片,放到电脑中处理。本以为按照标准流程,读图-〉灰度图-〉二值图-〉腐蚀或膨胀-〉查找外轮廓-〉求形心找最小外接矩形求倾斜角度。出叉了。由于光源不行,物体本身黄色(RGB:255,255,0),这种方式得到外轮廓基本没戏(如图1)我们知道轮廓内外差别越大,轮廓越容易得到。注意到白色RGB为255,255,255;物体与背景在B通道

2015-07-11 20:27:41 428

VC opencv3.0 找位置

vc opencv 找位置坐标 vc opencv 找位置坐标 vc opencv 找位置坐标

2018-08-14

三菱FX系列PLC与PC通讯

三菱FX系列PLC与PC通讯 http://blog.csdn.net/pengjc2001/article/details/54924699 http://blog.csdn.net/pengjc2001/article/details/54981750

2017-02-11

空空如也

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

TA关注的人

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