自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (13)
  • 收藏
  • 关注

原创 自定义类重载运算符<< >>,并用FileStorage保存和读取xml文件

OpenCV在2.0以后的版本中提供了FileStorage类,供用户将数据保存为xml或者YAML文件。本文的内容就是介绍如何自定义类,而后重载> 运算符,并通过FileStorage保存和读取xml文件。自定义一个数据类,想要保存的数据为一张图像,以及std::vector和std::vector > 两类点集。自定义类的头文件mydata.h#pragma once#inclu

2018-01-08 19:56:38 1148 3

原创 QGraphicsItem 鼠标点击事件编程方法

功能需求,在QGraphicsView中显示一张图像,如下图,鼠标点击图片时返回图片坐标系内的像素坐标,但是点击边上空白部分时不返回坐标。 实现思路是子类化QGraphicsView,QGraphicsScene, QGraphicsPixmapItem,并重写鼠标点击事件函数mousePressEvent(QGraphicsSceneMouseEvent* event)。光标默认的样式是手型

2017-12-31 22:56:05 14348

原创 QGraphicsView改变光标的样式

QGraphicsView中Item上默认的光标形状是一个手型,用于拖拽。但是下某些应用场景下,我们想要让光标变成其他的形状,比如十字形等。以下是一些解决方案: QGraphicsView 更改鼠标样式 以及QGraphicsItem悬停时更改鼠标样式 Changing the cursor in a QGraphicsView 上述方面主要就是子类化QGraphicsView,然后viewp

2017-12-26 22:26:48 2621

原创 Cmake 找不到OpenCVConfig.cmake文件

在利用Cmake-gui配置Visual studio2013的OpenCV工程时,遇到如下报错: 这说明Cmake不能自动找到OpenCV库所在路径,解决方案是在GUI界面中手动添加OpenCVConfig.cmake以及opencv-config.cmake所在的文件夹,即配置在下图标出的绿色圈所在位置。 这两个文件的所在位置一般是在OpenCV安装路径下的bin文件夹内。

2017-11-06 15:37:57 12336

原创 Visual Studio2013配置OpenCV3.1.0

Step1. BUILD -> Configuration Manager 窗口,将 Active solution platform 栏目内容改为x64 Step2. 在Solution Explorer窗口内,右键项目名称 -> Properties 打开属性页面 Step3. 属性页面下, 打开 Configuration Properties -> VC++ Directories 窗

2017-09-15 18:58:30 554

原创 OpenCV根据矩形轮廓进行倾斜校正

本文将介绍如何利用OpenCV,提取图片中的矩形轮廓特征并进行图片的倾斜校正。完成demo程序可以至:OpenCV根据矩形轮廓进行倾斜校正下载。本demo所处理的图片是一张PCB电路板(如下图),欲实现的功能是将图片中倾斜的PCB校正为水平。基本的思路是检测PCB的边缘直线,而后根据边缘直线的斜率旋转图片。但是由于PCB上布满了各种原件,所以图片在经过轮廓提取直线检测后,会误检出很多条直线。demo

2017-09-14 16:41:56 18574 1

原创 VS2013配置64位ZBar、OpenCV

本人想利用OpenCV与ZBar实现二维码扫描功能。PC上已经配置好了OpenCV3.1.0,并且VS2013配置为64位的开发环境。按照教程:二维码解码器Zbar+VS2012开发环境配置,配置了ZBar0.10,后利用如下代码测试:#include <iostream> #include<opencv2/opencv.hpp>#include <opencv2/core/core.hp

2017-09-06 22:05:34 6048 7

原创 Qt4 工程升级为Qt5工程

Qt5和Qt4相比,有很大的改动和不同,可以参考:从Qt4 到Qt5的变化。 本人电脑安装了Qt5.9.1,在运行《C++ GUI Qt4编程》(第二版)附带源程序时发生了一些问题,本文就介绍一下如何将Qt4工程升级为Qt5,并在新版本的Qt Creator中运行。 以《C++ GUI Qt4编程》(第二版)第二章中的程序gotocell2为例,原本的工程目录包含如下5个文件: 然后打开g

2017-08-25 15:03:02 5694 1

原创 Qt5 由.ui文件生成.pro文件和C++文件

Qt新手,因为项目需要临时学习。在win10系统上安装了Qt5.9.1的最新版本,跟着《C++ GUI Qt4编程》(第二版)学习。由于IDE和教程版本不同,初入手是遇到不少问题。教材2.3节 快速设计对话框介绍了如何使用Qt Designer设计对话框界面。按照教程指导一步步构建一个如下的对话框ui文件gotocelldialog.ui: 接着教程上说“现在运行qmake,生成一个.pr

2017-08-24 22:59:46 3563 1

原创 OpenCV + Java(Android) 设置ROI

在处理图像时, 我们经常需要提取图片中的重要部分进行分析,滤除不重要的噪声背景。通常的操作是设置感兴趣区域(Region of Interest, ROI),然后分割图片。由于操作对象形状的不同,ROI也会具有不同的形状。从简单的矩形,到稍复杂的圆形、椭圆,以及更为复杂的不规则形状。网上有很多关于C++版本的OpenCV设置ROI的博文,但是Java语言版的颇少,本文就着重介绍一下在Java或者An

2017-07-04 18:48:01 4748 3

原创 绘制灰度直方图(OpenCV + Java)

本文介绍一下如何使用Java语言绘制灰度图的直方图。由于Java环境下OpenCV不提供Mat图像的显示方法,如imshow(),因此需要使用SWing组件自己编写显示方法。同时,OpenCV的Jar包也并没有提供相关的抽象数据类型和方法,比如CvHistogram等。一、灰度直方图简介 灰度直方图是灰度级的函数,描述图像中该灰度级的像素个数(或该灰度级像素出现的频率):其横坐标是灰度级,纵坐标表

2017-06-20 15:59:49 5002 4

原创 OpenCV图像读取与灰度化

在OpenCV中,图像的读取可以通过imread()函数实现: Mat imread( const String& filename, int flags = IMREAD_COLOR ); 读取后的数据存储格式由第二个形参flags决定。flag的值可以从枚举类型cv::ImreadModes中选取:enum ImreadModes { IMREAD_UNCHANGED = -1, /

2017-06-19 13:18:55 3834

原创 基于OpenCV的数码管数字识别

利用OpenCV可实现工业仪表设备的读数识别。仪表一般可分为两:数字式仪表和指针式仪表,本博文主要介绍一下数字式仪表识别的关键技术。下图是用软件模拟的数码管图片,本文识别的也就是图中的数字。一、图像定位 在实际的应用场景中,拍摄到的仪表区域很有可能会包含多余的背景部分,一个比较简单的解决方法是在拍摄时先行设定一个边界区域,提醒拍摄者将待识别的内容限制在区域中。后期识别时直接提取边界区域内的信息进行

2017-06-13 14:01:38 10475 5

原创 Android TextView实现水平滚动显示效果

方法一、xml设置属性+程序中获取焦点第一步,首先在xml文件中设置TextView的属性:<TextView android:id="@+id/text" android:layout_width="340dp" android:layout_height="65dp" android:layout_gravity="center_h

2017-05-31 13:59:18 1661

原创 OpenCV图像拷贝方法与注意点(=、copy、clone)

下面介绍三种OpenCV复制图像的方法:方法1:直接赋值使用用赋值运算符“=”进行的拷贝是一种浅拷贝,虽然它们有不同的矩阵头,但是二者共享相同的内存空间,二者内容相互关联,任何一个变量变化的同时另一个变量也随之改变。/*OpenCV v1版本*/IplImage img_origin = cvLoadImage(".\\picture.jpg", CV_LOAD_IMAGE_COLOR); //

2017-04-07 16:09:57 19190

原创 STM32引脚JTDO、JNTRST与JTDI作为普通IO口使用配置

使用Jlink向STM32烧录程序时,需要使用6个芯片的引脚(以STM32F103C8T6为例),分别是PB4/JNTRST、PB3/JTDO、PA13/JTMS、PA14/JTCK、PA15/JTDI、NRST。标准的20针JLink接口如下图所示。 但芯片IO口资源比较紧张时,可选择SW模式烧录程序。SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下

2017-04-05 20:31:19 35299 4

原创 LTE中的非连续接收机制(DRX)

在无线网络中,当有数据需要进行传输时,用户终端(User Equipment, UE)要一直监听物理下行控制信道(Physical Downlink Control Channel, PDCCH),根据网络侧发送的指示消息对数据进行收发,这样导致 UE的功耗和数据传输的时延都比较大。因此3GPP标准协议在LTE系统中引入非连续接收机制(Discontinuous Reception,DRX)节能策略

2017-03-29 21:34:07 8814 2

原创 基于蓝牙5(BTIoT-5)的物联网架构

下图是一个基于蓝牙5(BTIoT-5)的物联网架构图。该架构分成了六层,分别是:硬件设备层、微控制器层、蓝牙连接层、互联网连接层、物联网蓝牙云平台层和应用层。硬件设备层处于架构的最底层,比如车辆、传感器、智能手机、国防设备、农业设备以及家用电器等等。硬件层负责的任务就是把设备自身或者周围的信息发送给上层,即微控制器层。微控制器主要应用于各种自动控制设备,包括医疗设备、工业设备、办公设备等等。许多控制

2017-03-29 21:28:29 2074

转载 SSD主控的软件架构

1) 操作系统位于整个系统的最上层,直接关系到用户的使用体验,普通用户只需要在操作系统中进行一些操作即可。如:WINDOWS、OS、Linux等。2) 文件系统:文件系统位于操作系统之下,操作系统的指令是通过文件系统来到达硬盘的,所以每个操作系统都会有不同的文件系统,例如WINDOWS上使用的NTFS,FAT等,Linux上使用的ext3,ext4等等。3) 底层驱动:底层驱动是位于软件层面

2017-03-29 21:23:47 2439

原创 浅谈窄带物联网(NB-IoT)

一、发展历程物联网通信技术繁多,从传输距离上可划分成两类:第一类是短距离通信技术,例如ZigBee、Wi-Fi、Bluetooth等,典型的应用场合如智能家居;第二类是低功耗广域网(Low Power Wide Area Network, LPWAN),典型的应用为智能抄表系统。LPWAN技术又可根据工作频段分为两类:一类工作在非授权频段,如Lora、SigFox等,此类技术无统一标准,自定义实现;

2017-03-29 20:25:44 28151

原创 OpenCV findContours导致程序崩溃和相关使用问题

OpenCV新手上路,官网下载了一个OpenCV3.2.0版本,在VS2013上编程。安装各种教程配置好环境后开始研究。第一个任务是数码管数字识别。找了一张图片,开始读取灰度图,二值化,膨胀(数码管数字笔画是不连的,为了轮廓提取方便需要进行膨胀使得数字笔画相连),轮廓提取,数组分割,识别。。。 但是在轮廓提取过程发生了问题,主要是findContours()函数惹的祸,一运行到这个函数程序就崩溃,

2017-03-17 15:10:32 4591

翻译 C++指针与const

(本文参考C++ Primer Plus)1. const指针指向const变量(合法)const int var = 1;const int* p1 = &var; 程序合法,而且都不能通过var和*p1改变地址上或者变量的值。2. const指针指向非const变量(合法) int var = 1; const int* p1 = &var; 程序合法,不能通过地址操作修改变量的值(*p

2017-03-08 19:05:33 588

原创 蓝牙的主要演进版本

蓝牙技术最开始由爱立信公司着手开发,事实上该公司在1994年的时候已经开始了该通信技术的开发工作。在1998年2月,爱立信、IBM、诺基亚、英特尔和日本的东芝公司成立了Bluetooth Special Interest Group(SIG),该组织自成立以来就一直致力改良和提升蓝牙技术,不断更新蓝牙通信协议的版本。截止目前为止蓝牙协议共经历了多个版本的变迁,其中主要包括有V1.1,V1.2,V2

2017-03-01 21:36:54 1625

原创 MOS管栅极串联电阻的作用

如果没有栅极电阻,或者电阻阻值太小 MOS导通速度过快,高压情况下容易击穿周围的器件。栅极电阻阻值过大 MOS管导通时,Rds会从无穷大将至Rds(on)(一般0.1欧姆级或者更低)。栅极电阻过大时,MOS管导通速度过慢,即Rds的减小要经过一段时间,高压时Rds会消耗大量功率,导致MOS管发烫。过于频繁地导通会使热量来不及发散,MOS温度迅速身高。在高压下,PCB的设计也需要注意。栅极电阻

2017-02-17 19:41:21 20346

原创 STM32互补PWM输出使能控制

STM32的高级定时器TIM1的互补PWM输出使能和关闭的控制问题

2017-01-04 19:53:18 19345 4

OpenCV根据矩形轮廓校正倾斜

OpenCV根据矩形轮廓校正倾斜。详细说明请参考博文:http://blog.csdn.net/mengchicmc/article/details/77981112

2017-09-15

OpenCV根据矩形轮廓进行倾斜校正

OpenCV根据矩形轮廓进行倾斜校正。算法介绍可参考:http://blog.csdn.net/mengchicmc/article/details/77981112

2017-09-15

OpenCV + Java(Android) 设置ROI

OpenCV + Java(Android) 设置ROI,说明参见http://blog.csdn.net/MengchiCMC/article/details/74352122

2017-07-04

数码管数别字识--KNN算法

数码管数别字识,使用KNN算法,OpenCV+VC2013

2017-06-13

数码管数字识别--穿线法

数码管数字识别,使用穿线法,检测八段数码管每一小段。OpenCV+VC2013.

2017-06-13

反射光传感器OPB9000驱动

光反射传感器OPB9000的驱动程序,51单片机平台开发,芯片:STC15F260S2。若移植至其他平台,需修改相关的延时函数。

2017-04-28

蓝桥杯单片机组2015年决赛模拟题程序

蓝桥杯单片机组2015年决赛模拟题“简易温度采集与控制装置”程序

2016-12-23

蓝桥杯单片机组2014年赛题程序

蓝桥杯单片机组2014年赛题“多功能记录仪”程序

2016-12-23

蓝桥杯单片机组2013年赛题程序

蓝桥杯单片机组2013年赛题“自动打铃器”程序

2016-12-23

蓝桥杯单片机组2012年赛题程序(江苏省)

蓝桥杯单片机组2012年赛题“自动售水机”程序

2016-12-23

蓝桥杯单片机组2012年赛题程序

蓝桥杯单片机组2011年赛题“模拟智能传送装置”程序

2016-12-23

蓝桥杯单片机组2011年赛题程序

蓝桥杯单片机组2011年赛题“模拟智能传送装置”程序

2016-12-23

排序算法-C语言

插入排序,冒泡排序,希尔排序,并归排序,选择排序,快速排序,

2016-12-23

空空如也

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

TA关注的人

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