自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (4)
  • 收藏
  • 关注

原创 指针式仪表识别(二)基于轮廓的倾斜仪表校正

本文将介绍如何利用OpenCV,提取图片中的矩形轮廓特征并进行图片的倾斜校正。完成demo程序可以至:基于轮廓的倾斜仪表校正本demo所处理的图片是一张仪表(如下图),欲实现的功能是将图片中倾斜的PCB校正为水平。基本的思路是检测PCB的边缘直线,而后根据边缘直线的斜率旋转图片。但是由于仪表上存在指针,所以图片在经过轮廓提取直线检测后,会误检出很多条直线。demo程序中主要的算法就是从含有噪声...

2018-12-19 10:44:40 6680 7

原创 Qt智能机器人控制系统

最近一直为机器人做一个控制系统,需要同时搭载Tensorflow和海康网络摄像头,当然python是最好的开发工具,搭载tensorflow比较容易,但是搭载海康摄像头,一直找不到如何去做。后来又想到java,海康摄像头解决了,调用tensorflow训练模型又有很多的坑。暂时先用Qt做了,后面再想办法。只能用tenssorflow的ssd_mobilenet模型。opencv官方也没有更新其他的

2017-12-23 15:48:42 5618 6

原创 PyQt5 做一个记事本

最近一直在做深度学习,因为要在项目中实现,一直苦于没有好的搭载平台,前后试过Java,Android,Qt,移植过程比较恶心。opencv只出到3.3.1,以前的版本都不可以移植tensorflow,opencv还没有很好的与深度学习框架的一个搭配,最近也一直在做吧。所以最好的方式还是通过Python来做深度学习,方便,tensorflow的github也都是为它做的。了解到了PyQt5,

2017-11-14 19:04:55 3571

原创 PyQt5+python3+pycharm开发环境配置

1.下载PyQt你可以百度PyPI,去搜索PyQt5的whl文件,然后在命令中,输入pip install PyQt5-5.9.1-5.9.2-cp35.cp36.cp37-none-win_amd64.whl进行安装。我的操作系统是64位的,安装的是Python3.6.1,所以我选择下载:PyQt5-5.9.1-5.9.2-cp35.cp36.cp37-none-win_amd6

2017-11-14 18:49:45 1723

原创 Java 内部类

如果在一个类中使用内部类,可以在内部类中直接存取其所在类的私有成员变量。成员内部类的语法:public class OuterClass { private class InnerClass{ } public static void main(String[] args) { // TODO 自动生成的方法存根 }}在内部类中可以随意使用外部类的成员方法以

2017-11-04 21:40:52 304

原创 Java(opencv) 窗体打开摄像头

整个程序下载地址:Java(opencv) 窗体打开摄像头,并做一个灰度话处理,以后有关图像处理的和opencv的没有太大的区别在testVideo项目下创建VideoIO包,包下新建ShowVideo.java窗体应用。直接来看ShowVideo.java程序内容部分:package VedioIO;import java.awt.EventQueue;impor

2017-11-03 20:29:45 6595 9

原创 Java(opencv)窗体中显示图像

源代码下载:Java(opencv)中显示图像在textImageIO java项目中添加textImageIO包,在包中添加textImage.java在tool包中添加tool.java在窗体中添加一个Jlabel,在textImage.java中添加一下程序:package textImageIO;import java.awt.EventQueue;imp

2017-11-03 15:47:54 5046 2

原创 相机的标定+畸变矫正

摄像机标定本文目的在于记录如何使用MATLAB做摄像机标定,并通过opencv进行校正后的显示。首先关于校正的基本知识通过OpenCV官网的介绍即可简单了解: http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html对于摄像机我们所关心的主要参数为摄像机内参

2017-11-01 19:30:01 13139 13

原创 Python视觉处理(四)HSV处理

很多时候,当图像中存在色彩时,我们用用RGB图像处理得不到想要的结果时,就可以把图像转化成HSV图像,再加以处理,这样处理起来获取方便了很多。当然,在特定的环境中,我们不知道HSV的范围,这个时候可以测试一下图像中想要凸显的物体的HSV的范围,再设定相应的阈值范围。点击图像观察图像HSV值代码:import cv2import numpy as npfrom matplotlib im

2017-10-22 15:28:06 25426 4

原创 Qt做一个卡通摄像头

在这篇文章的基础上,做视觉卡通处理:Qt打开USB摄像头,做圆检测先在painting.h中添加一个函数,painting.hprivate slots: void colorpainting(Mat image,Mat& result);在painting.cpp中添加一下程序:#include "painting.h"#include "ui_painti

2017-10-19 09:44:34 538

原创 Opencv学习笔记(二十三) 改进边缘检测算子-----Marr-Hildresh

Marr-Hildresh边缘检测算子,用于解决边缘检测的核心问题---定位精度和抑制噪声。Marr-Hildreth算子以高斯函数为平滑算子,结合拉普拉斯算子提取二阶导数的零交叉理论进行边缘检测。边缘检测中灰度变化与图像尺寸无关,检测算子可为不同尺度,灰度变化梯度在一阶导数的极值点(波峰或波谷),或在二阶导数为零的交叉点。由于噪声点对边缘检测有一定的影响,所以效果更好的边缘检测器是LoG算子

2017-10-17 18:33:03 1450

原创 Qt打开USB摄像头做形状检测

Qt打开USB摄像头做形状检测,上次做圆检测。Qt打开USB摄像头,做圆检测在上文的基础上,添加一个函数,void contours(Mat image);直接上程序://形状检测void MainWindow::contours(Mat image){ vector > contours; vector hierarchy; Mat srcIma

2017-10-15 21:41:54 2232

原创 Python视觉处理(三)canny边缘检测

canny边缘检测:现在要确定哪些边界才是真正的边界,需要设置两个阈值,minValue和maxValue。当图像的灰度梯度高于maxValue时被认为是真正的边界,那些低于minValue的边界会被抛弃。如果介于两者之间的话,就要看这个点是否与某个被确定为真正的边界点相连,如果是就认为它是边界点,如果不是就抛弃。cv2.Canny()函数,这个函数第一个参数是输入图像,第二和第三分别是m

2017-10-15 20:36:42 1960

原创 Python视觉处理(二)线检测

python线检测使用的时cv.HoughLinesP()函数:它有两个参数:minLineLength-线的最短长度,比这个线短的都会被忽略。MaxLineGap-两条线之间的最大间隔,如果小于此值,这两条线就会被看成一条线。这个函数的返回值就是直线的起点和终点。看主程序:import cv2import numpy as npfrom matplotlib impo

2017-10-15 14:58:03 5210 1

原创 python视觉处理(一)角点检测

学了一段时间python+opencv了,总结一下学习的内容。python 的整个语言和C++的opencv区别不大,就是不用定义,不用加结束符,不用输出图像。整个语句都是相当的简洁。import cv2import numpy as npimg=cv2.imread('Biaoding.jpg')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)g

2017-10-15 09:31:46 4754

原创 Halcon学习笔记(一) 读取图片

今天把Halcon安装配置好了,就试试图像处理。网上的教程太少了,就自己试了试图像读取的写法。先读取一张图片。直接上程序:#include "halconcpp.h"#include #include #include using namespace cv;using namespace HalconCpp;int main(){ HImage img; ReadIm

2017-10-14 22:14:26 2826

原创 Qt打开USB摄像头,做圆检测

Qt界面中添加一个Label,打开USB摄像头,并做相应的图像处理。一直都是使用C++配置opencv做视觉处理,最近要做界面,决定学习一种新的界面编辑软件,C#很好用,C#配置Emgu做视觉分析,一直都不如C++方便,个人比较喜欢用容器的方式操作像素对图像进行处理,正好Qt满足这个需求。在ui界面添加一个label,用来显示摄像头获取的图像:看见旁边有个被子,就做一个

2017-10-12 14:43:44 3093 1

原创 Win10下VS2015配置DirectShow+OpenCV并且多摄像头的采集

最近正好要用个比较小的摄像头用来采集图像,就买了一个USB接口的工业内窥镜摄像头,发现用opencv打开摄像头出现imshow()显示的时候一闪而过。表示摄像头是打开了,但是采集不了。最后了解了一下,常用的USB摄像头和笔记本本身自带的摄像头不是一个类型的,imshow()获取不了这种类型的摄像头。 还有网上各种解决方法,基本都不正确,出现这种选择某种摄像头的方法,在真正使用中不实用而...

2017-10-11 14:30:33 4318 4

原创 Opencv学习笔记(二十二) 凸包检测

凸包检测:凸包可以想象成一条刚好包住所有点的橡皮圈,对于二维的图像,凸包就是将最外层的点连接起来构成凸多边形,它能包含点集中所有的点。物体的凸包检测常常用于物体识别、手势识别及边界检测等领域。OpenCV提供了函数convexHull()用于对物体轮廓凸包进行检测,对形状凸包缺陷分析时使用convexityDefects()函数,每个缺陷区包含四个特征量:起始点,结束点,距离及最远点。

2017-10-08 19:08:29 8841

原创 opencv2.4.13配置VS2015(永久配置)

opencv2.4.13配置VS2015,永久配置。VS2015和opencv2.4.13的下载地址:https://msdn.itellyou.cn/首先设置系统环境变量:32位和64位都添加上,如果你只配置了一个版本的opencv,尽量配置为32位,安全,错误少。设置好系统变量后,打开VS2015,新建一个控制台应用程序,然后在源文件中添加新建项

2017-10-08 18:00:18 11542 1

原创 Qt实现TcpClient和TcpServer连接收发数据

Qt实现TcpClient和TcpServer连接收发数据,TcpClent实现上位机给串口发送指令,没有什么问题了,可是让下位机做出相应的指令。首先在TcpClient和TcpServer中的pro加入QT+=network。界面设计:接受指令设计:tcpclient.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include

2017-09-25 15:02:07 18660

原创 Qt+opencv二值化

我用的是Qt5.6.0+opencv3.2,套件是MinGW,关于在Qt中如何配置的问题,可以参考这篇文章,http://blog.csdn.net/gufeiyunshi/article/details/50967440打开图像做个二值化处理,以证明配置没有问题。在ui界面放一个label和一个pushButton,比较喜欢使用Qt做界面开发,它融合了C#和C++两种语言的好处。

2017-09-24 08:49:27 2257

原创 Qt实现打开网页

Qt实现打开网页,新建一个mainwindow。在UI界面添加一个Text Browser。首先在myHTTP.pro中添加QT   +=  network在mainwindow.h中新建两个类,QNetworkReply和QNetworkAccessManager。class QNetworkReply;class QNetworkAccessManager;privat

2017-09-23 21:10:57 7042 3

原创 远程终端IP地址查询助手

最近配置网桥,如果忘了网桥的地址,是一件很麻烦的事情。总是要试每个网桥的地址。想着开发一个查询IP助手,可以省很多的事,就试了试了试网络编程和程序打包的方法,花了一天时间做出来一个IP查询助手,速度不是很快,但也算时大大提高了效率。总结一下开发过程。首先做了一个很low的界面,C#也做不出多么漂亮的界面。然后配上学校的logo,看上去高大上一些。凑合看吧,这个不重要,能用就OK了。

2017-09-22 15:17:03 3490

原创 摄像头和视频的读取和写入

总结一下视频的读取和写入,opencv1+和opencv2+以后的版本都总结一下。先总结一下opencv1+的用法,现在使用的opencv都是2.0以后了,不过1.0版本是使用指针,用起来确实感觉很爽,简单实用。有人不喜欢1.0+的释放控件,我觉得这是个好习惯。视频读入:int main(int argc,char* argv[] ){ //argv[1] input video

2017-09-21 14:35:24 1116

原创 视频前景目标提取(一)

最近几天参加了一次比赛,提取监控视频前景目标,前前后后试了很多的方法,帧差法+GMM,四帧差法,改进帧差法,混合高斯模型,改进的混合高斯模型,ViBe前景目标提取,ViBe+GMM前景目标提取等等。最后也尝试了模板匹配和HOG+SVM训练样本图片提取视频目标。大概会用几篇文章介绍一下这些方法的优缺点和各自的适用情况。编程实现均在opencv2.4.13+VS2015环境。    首先介绍一下帧

2017-09-20 19:33:00 10166 4

原创 ViBe提取视频前景目标

ViBe算法:ViBe - a powerful technique for background detection and subtraction in video sequences算法官网:http://www2.ulg.ac.be/telecom/research/vibe/描述:ViBe是一种像素级视频背景建模或前景检测的算法,效果优于所熟知的几种算法,对硬件内存占用也少。

2017-09-17 22:20:14 3025

原创 Emgu学习笔记(四)---Canny、线检测、圆检测

Canny边缘检测:用法和opencv中的一致,Image Image.Canny(double thresh,double threshLinging)thresh、threshLinging为第一滞后阈值和第二滞后阈值。private void button1_Click(object sender, EventArgs e) { I

2017-04-15 11:12:06 12693 2

转载 Emgu学习笔记(三)----Emgu使用技巧简单汇总

转载于:http://blog.csdn.net/cvmat/article/details/537068461、Emgu Image类有一个ToBitmap()函数,可以返回一个位图对象,用于使用Windows窗体PictureBox控件上显示2、Emgu Mat转成Emgu Image方法:Image img = mat.ToImage();3、C#控制台程序通

2017-04-14 20:37:10 4243

原创 Emgu 学习笔记(二)---图像二值化,自适应阈值化,Otsu二值化

图像二值化,自适应阈值化,Otsu二值化Emgu灰度化、二值化操作方法和OpenCV中区别不大,Threshold()来实现的。自适应阈值是整幅图像使用一个阈值,自适应阈值是图像的不同区域使用不同的阈值,而这个阈值是对整个区域计算出来的。在Emgu中也是调用函数AdaptiveThreshold()来实现的。public static AdaptiveThreshold(IInputA

2017-04-14 17:12:51 12539 5

转载 【重要总结】IntPtr、Image以及IplImage三者之间的相互转换

/******************************************************************************//***************************MIplImage&IntPtr&Image***************************//***************************************

2017-04-14 16:36:25 4846

原创 C# EmguCV学习笔记(一)---图像加减法操作

图像加法,图像减法。

2017-04-13 22:01:27 9968

转载 Qt程序打包发布方法(使用官方提供的windeployqt工具)

Qt程序打包发布方法(使用官方提供的windeployqt工具)转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.groupQt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具

2017-03-16 11:07:17 453

原创 Qt学习笔记(三)---制作一个记事本

mainwindow.h#include #include #include #include #include #include #include #include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: expl

2017-03-12 16:42:41 1805

原创 Qt学习笔记(二)---实现四则运算

用Qt实现一个可以实现四则运算的计算器:#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);

2017-03-11 09:27:43 4124

原创 Qt学习笔记(一)布局管理器

#include #include #include #include #include #include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); QLabel *infoLabel = new QLabel; QLabel *cmdLabel = new QLabel;

2017-03-10 17:37:55 452

原创 OpenCV学习笔记(二十一)---三通道和四通道之间的区别

三通道和四通道之间的区别:void mixChannels(const vector& src, vector& dst, const int* fromTo, int npairs)src –矩阵的输入数组或向量。所有矩阵必须具有相同的大小和相同的深度。nsrc –src中的矩阵数。dst –输出数组或矩阵向量。所有矩阵必须分配。它们的大小和深度必须与src [0]一致。

2017-03-09 13:49:42 7593

转载 Opencv学习笔记(二十)--读取视频帧的几种方法

1、第一种方法#include "opencv2/opencv.hpp"using namespace cv;int main(int, char**){ VideoCapture cap("E:\\图片\\视频材料\\AVSEQ01.avi");// open the default camera if(!cap.isOpened()) // check if we succe

2017-03-09 09:19:44 17004

原创 OpenCV学习笔记十九---运动跟踪 CamShift以及meanShift详解

CamShift跟踪器:RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria)probImage – 对象直方图的反投影. 详细见函数 calcBackProject() .window – 初始搜索窗口criteria – meanShift  停止迭代搜索标准.

2017-03-06 20:08:16 2532

原创 OpenCV学习笔记(十八) SIFT特征

SIFT特征:SIFT是目前应用最广泛的关键检测和描述算法。关键点描述也称特征点描述,SIFT特征提取充分利用了图像局部信息。主要包含了四个步骤:疑似特征点检测,去除伪关键点,关键点梯度和方向匹配及特征向量生成。OpenCV中提供了sift特征描述及提取的类siftFeatureDetector,应用:ocv:class:SIFT来封装用于计算特征描述的子类,该类继承特征描述基类Des

2016-12-30 20:30:29 1080

基于轮廓的倾斜仪表校正

OpenCV根据轮廓进行倾斜校正。算法参考可以参考我的文章。

2018-12-19

Java(opencv)打开窗体显示摄像头

这个是窗体打开摄像头,并进行二值化处理的一个demo。。。。。

2017-11-03

textImageIO

Java窗体设计,配置opencv3.3.1处理图像。。。。。。。。

2017-11-03

DirectShow显示USB摄像头

在VS2015下配置directshow和opencv。用来显示多个USB摄像头

2017-10-11

空空如也

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

TA关注的人

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