OpenCV
文章平均质量分 72
pengjc2001
生命不息,折腾不止。
展开
-
轮廓处理之三
上文目的为了求的运动物体的位置信息,但是在寻找轮廓时,发现轮廓并非我想要的轮廓发现了mode变量的影响。现在继续前面任务对某一图像来操作看看会有什么样的结果。 突然发现,主体图像的边缘出现了很多干扰的小点点。我该如何处理这些问题呢?原创 2015-05-25 17:07:20 · 452 阅读 · 0 评论 -
如何使用opencv中的svm分类器
最近掉进了机器学习的坑了。算法的开发应该是科学家的事,但算法的应用就是工程师的事了。Halcon提供了的工具太自动化了。当你还没意识过来,结果就出来了。想用opencv来实现一个简单的字符识别程序。分类器就选svm吧。(目前就接触了knn svm,但是感觉knn太暴力)。svm提供一种二分法的手段。对于解决是非问题再好不过了。在《Mastering OpenCV with Practical Co原创 2017-03-11 10:55:36 · 3897 阅读 · 0 评论 -
在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 · 4669 阅读 · 5 评论 -
轮廓处理之四
今天本打算对一黄色网布做位置形状检查。用手机拍了一张白底的照片,放到电脑中处理。本以为按照标准流程,读图-〉灰度图-〉二值图-〉腐蚀或膨胀-〉查找外轮廓-〉求形心找最小外接矩形求倾斜角度。出叉了。由于光源不行,物体本身黄色(RGB:255,255,0),这种方式得到外轮廓基本没戏(如图1) 我们知道轮廓内外差别越大,轮廓越容易得到。注意到白色RGB为255,255,255;物体与背景在B通道原创 2015-07-11 20:27:41 · 448 阅读 · 0 评论 -
线程破解程序死循环
最近用opencv+mfc做了一个简单的程序(点击button后,打开视频,另一个button关闭视频)。问题来了,读视频的程序是个死循环。怎么解。因此,应该考虑线程的问题了。让视频程序在线程里跑。 何为线程? 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是原创 2015-08-17 17:34:04 · 1656 阅读 · 0 评论 -
关闭摄像头 结束线程
前面提到用线程打开了摄像头程序。现在我们该如何去关闭它。该程序是在线程内的一个死循环,如果循环过程中来监听某一变量的变化,做条件来结束循环。即该线程也结束。 bool CcamShowDlg::CameraOpen() { capture.open(0); if (capture.isOpened() == 0) { AfxMessageBox(_T("摄像头初始化失败")); r原创 2015-08-17 19:31:28 · 3296 阅读 · 0 评论 -
轮廓处理之一
RGB图:R redG greenB blue每一种颜色,在视觉效果上,都可以用不同比例的 红 绿 蓝来合成彩色图像的每一个像素,都用 R G B 的不同比例来表示,这样的图像就是RGB图像 灰度图:每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。 二值图:指每个像素不是黑就是白,其灰度值没有中间过渡的图像。二值图像一般用来描述文字或者图形,其优点是占用空间少,原创 2015-05-18 20:41:23 · 991 阅读 · 0 评论 -
轮廓处理之二
目前,使用opencv的目标是跟踪一个规则物体(比如圆形的药片),需要得到它的位置,以及移动的速度等。有前面得到的轮廓,我下面需要解决的是 它的重心位置以及半径。轮廓的矩提供了我需要的基本参数。 轮廓的长度(曲线长度或闭合曲线周长)求取 double cvArcLength(const void* curve, CvSlice slice=CV_WHOLE_SEQ, int isClosed=原创 2015-05-20 10:08:08 · 543 阅读 · 0 评论 -
用opencv svm 折腾的识别程序
前面有过用halcon识别字符,现在用opencv折腾下。比较一下 排除svm算法的问题,对我们来说就是构建合适的分类数据, 在这还是采用《Mastering OpenCV with Practical Computer Vision》中说的 水平方向字符投影 + 竖直方向字符投影 + 缩小后的字符像素信息矩阵(把它平铺) 将所有16个字符的信息 放在 一个 2维矩阵中 16X (characterOriginalWidth + characterOriginalHeight + characterWid原创 2017-03-14 08:39:48 · 734 阅读 · 0 评论