自定义博客皮肤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)
  • 资源 (19)
  • 收藏
  • 关注

原创 C#制作文本转换为声音的demo,保存音频文件到本地

TTS(Text To Speech)可以实现把文本转换成语音并朗读出来。Windows Xp可以使用Com组件——Microsoft Speech Object Library实现TTS,Windows 7及之后的系统可以使用.Net组件——System.Speech,使用更加方便。最简单的实现TTS功能的办法是:新建一个记事本文档,然后在文档里输入这样一句话——  Crea

2016-08-31 22:45:40 8012 3

原创 用NPOI、C#操作Excel表格生成班级成绩单

在C#中利用NPOI操作Excel表格非常方便,几乎上支持所有的Excel表格本身所有的功能,如字体设置、颜色设置、单元格合并、数值计算、页眉页脚等等。这里准备使用NPOI生成一个班级成绩单Excel表格,表格中包含的信息包括学号、姓名、各科成绩、平均成绩、排名等。实现原理很简单,主要是NPOI的一些操作,具体实现的功能包括下边几个:单元格合并字体大小、颜色设置背景颜色设置

2016-08-30 23:25:49 7585 3

原创 C#项目中操作Excel文件——使用NPOI库

实际C#项目中经常会涉及到需要对本地Excel文件进行操作,特别是一些包含数据记录、分析、汇总功能模块的项目。常用的操作Excel文件的方法主要有三个: 1. OleDb:这种方式是把整个Excel文件当做一个数据源来进行数据的读取操作。优点:实现方式简单,读取速度快;缺点:读取Excel数据的过程不太灵活,对内存的占用比较高,当数据量变的很大时,容易由于内存空间不足导致内存溢...

2016-08-29 20:23:18 73385 28

原创 Canny边缘检测及C++实现

Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算法仍然是图像边缘检测算法中最经典有效的算法之一。一起睹一下大家芳容:John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的3个指标:1  好的信噪比,即将非边缘点判定为

2016-08-28 13:26:34 54606 46

原创 高斯滤波及高斯卷积核C++实现

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,在图像处理的降噪、平滑中应用较多,特别是对抑制或消除服从正态分布的噪声非常有效。高斯滤波的过程其实就是对整幅图像进行加权平均操作的过程。滤波后图像上每一个像素的灰度值大小,由其本身和邻域内的其他像素共同决定。具体实现是:用一个大小为(2*N+1)的模板(或称卷积核、掩模)依次扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度替代模板中心像素...

2016-08-24 23:59:01 33256 13

原创 Opencv Mat矩阵中data、size、depth、elemSize、step等属性的理解

data:         uchar类型的指针,指向Mat数据矩阵的首地址。可以理解为标示一个房屋的门牌号;dims:         Mat矩阵的维度,若Mat是一个二维矩阵,则dims=2,三维则dims=3,大多数情况下处理的都是二维矩阵,是一         个平面上的矩阵。        可以理解为房屋是一个一层的平房,三维或更多维的则是多层楼房

2016-08-23 21:44:36 82791 9

原创 Sobel算子及C++实现

Sobel 算子是一个离散的一阶微分算子,用来计算图像灰度函数的近似梯度。在空间域上Sobel算子很容易实现,执行速度快,对部分噪声具有平滑作用,还能够提供较为精确的边缘方向信息,缺点是边缘定位精度不够高。边缘是指一个物体与另一个物体的分界处,一般边缘内外处都会有灰度值上的差异,Sobel算子就是通过像素点空间邻域内上下,左右相邻点的灰度加权运算,求取物体边缘。经典Sobel的卷积

2016-08-22 22:38:52 28100 11

原创 膨胀和腐蚀操作中的不同结构元效果对比

常用的图像形态学操作包括膨胀、腐蚀、闭运算、开运算。膨胀操作会扩大(粗化)图像中物体的轮廓,可以用来弥补(填充)物体间的孔洞,强化离散点,代价是导致物体的面积比原来的面积要大。腐蚀操作会收缩(细化)图像中物体的轮廓,可以用来断开(分离)物体间的连接,消除离散点,代价是导致物体的面积比原来的面积要小。闭运算是使用同一结构元对图像进行先膨胀后腐蚀的操作,可以用来弥合较窄的间断和细长的沟壑,

2016-08-21 15:00:44 14500 4

原创 运动物体检测与跟踪——累积权重构建背景模型

运动物体检测与跟踪中的帧差分法,除了相邻帧差分法和三帧差分法外,还有一种差分方法,可以通过建立不含前景的背景模型,用当前帧和背景模型做差,差值就可以体现运动物体大概的位置和大小信息。相比相邻帧差分法和三帧差分法,背景模型做差法可以较为完整的体现运动物体的整体轮廓,运动物体的双重轮廓、“鬼影”、空洞现象改善明显,下文的对比效果可以看到这一点。但背景模型的选取和建立的要求条件也更为苛刻

2016-08-21 00:25:42 9824 5

原创 Opencv绘制最小外接矩形、最小外接圆

Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle。minAreaRect方法原型:RotatedRect minAreaRect( InputArray points );输入参数points是所要求最小外结矩的点集数组或向量;minEnclosingCircle方法原型:vo

2016-08-20 12:43:45 52101 6

原创 findContours函数参数详解

注: 这篇文章用的OpenCV版本是2.4.10, 3以上的OpenCV版本相关函数可能有改动Opencv中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下findContours方法中各参数的含义及用法,比如要求只检测最外层轮廓该怎么办?contours里边的数据结构是怎样的?hierarchy到底是什么鬼?Point()有什么用?先从fi...

2016-08-19 21:54:17 223413 34

原创 findContours 轮廓查找

物体的轮廓勾勒出了物体的整体形状,物体形状的边界像素一起组合成了轮廓。灰度图像边界的明显特征是边界两侧灰度级的突变,根据这个特征,使用Sobel、拉普拉斯或Canny之类的边缘检测算子可以有效的检测到物体的边界,所有连续的边界像素组合在一起成为一个整体,就构成了物体的轮廓。轮廓检测可以使用findContours函数,检测步骤是:1. 使用拉普拉斯或Canny等边缘检测算子处理图像,获得仅包含边界的二值图像。2. 使用findContorus方法,获取图像所有的边界连续像素序列,并保存在con

2016-08-18 23:38:17 9218

原创 视频监控中运动物体检测与跟踪----相邻帧差法和三帧差法

帧间差分法是通过对视频中相邻两帧图像做差分运算来标记运动物体的方法。帧差法依据的原则是:当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有差别,求取两帧图像灰度差的绝对值,则静止的物体在差值图像上表现出来全是0,而移动物体特别是移动物体的轮廓处由于存在灰度变化为非0,这样就能大致计算出移动物体的位置、轮廓和移动路径等。帧间差分法的优点是算法实现简单,程序设计复杂度低;对光线等场景变化不太敏感,能够适应各种动态环境,稳定性较好。缺点是不能提取出对象的完整区域,对象内部有“空洞”,只能提取

2016-08-17 23:53:53 37328 6

原创 自适应阈值分割—大津法(OTSU算法)C++实现

大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的。大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分。背景和前景的分界值就是我们要求出的阈值。遍历不同的阈值,计算不同阈值下对应的背景和前景之间的类内方差,当类内方差取得极大值时,此时对应的阈值就是大津法(OTSU算法)所求的阈值。 何为类间方差?...

2016-08-16 21:46:27 39820 4

原创 Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比

打开视频文件或摄像头视频需要使用Opencv中的VideoCapture类,保存视频或摄像头视频到本地磁盘,需要使用Opencv中的VideoWriter类,使用都很简单,这篇文章就记录一下VideoWriter类的用法,主要关注一下VideoWriter在不同编码方式下保存视频文件大小的区别。VideoWriter类的一个常用构造方式如下:VideoWriter(const st

2016-08-16 00:05:49 14074 6

原创 图像灰度变换及实现

图像反转的原理很简单,就是颠倒黑白的运算,处理后的效果看起来像是原图的底片;对数变换可以将图像的低灰度值部分扩展,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到强调图像低灰度部分的目的;伽马变换主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度;

2016-08-14 15:07:30 24620 1

原创 Opencv打开内置摄像头

Opencv中VideoCapture是专门用来处理视频文件或者摄像头视频流的类,详细的说明和用法可以参考Opencv2.4.13的说明文档:点击打开链接使用VideoCapture打开内置摄像头的例子:#include #include #include using namespace cv; int main(int argc,char *arg

2016-08-13 20:31:17 13938 2

原创 Opencv+Zbar二维码识别(一维码校正)

一维码由一组规则排列的黑色线条、白色线条以及对应的字符组成。对倾斜的(没有严重形变)一维码的角度校正,可以根据其黑白相间、排列规则的特点,计算傅里叶频谱,通过傅里叶频谱中直线的倾斜角度计算空间域图像一维码需校正的角度。校正步骤:1. 计算图像X,Y方向上梯度图像,并求和,突出图像边缘信息2. 离散傅里叶变换,画出一维码的频谱图3. 霍夫变换定位到傅里叶频谱图中直线,获得直线角度4. 计算一维码需校正角度,通过仿射变换,校正图像

2016-08-13 11:39:05 15138 15

原创 Opencv+Zbar二维码识别(二维码校正)

二维码和车牌识别基本都会涉及到图像的校正,主要是形变和倾斜角度的校正,一种二维码的畸变如下图:这个码用微信扫了一下,识别不出来,但是用Zbar还是可以准确识别的~~。这里介绍一种二维码校正方法,思路:滤波->二值化->膨胀(腐蚀)操作->形态学边界->寻找直线->定位交点->放射变换校正。滤波、二值化:腐蚀操作:形态学边界:

2016-08-12 23:40:23 24528 27

原创 Opencv+Zbar二维码识别(标准条形码/二维码识别)

使用Opencv+Zbar组合可以很容易的识别图片中的二维码,特别是标准的二维码,这里标准值的是二维码成像清晰,图片中二维码的空间占比在40%~100%之间,这样标准的图片,Zbar识别起来很容易,不需要Opencv额外的处理。下边这个例程演示两者配合对条形码和二维码的识别:#include "zbar.h" #include "cv.h" #include "highgu

2016-08-05 23:11:20 38856 15

原创 二维码解码器Zbar+VS2012开发环境配置

Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件、手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, QR Code(二维码)等常用编码方式的条形码/二维码。下边这个简单粗暴的图标就是Zbar:Zbar的SDK支持包括C、C++、pyt

2016-08-03 23:54:03 23457 33

原创 条形码、二维码的区别和组成结构介绍

条形码(一维码)和后来在其基础上发明的二维码主要是作用物品的标识来使用的。条形码主要应用在商品标识、防伪、医药监管、超市收银等场合,二维码可以包含更多的信息,像网址、文字、图片等等,甚至是一首诗,一篇文章等,在网络时代应用逐渐普及很快。一维码:    二维码:区别:1.二维码承载的信息量远大于一维码组成一维码的信息部分只能是字母和数字,尺寸相

2016-08-03 21:17:19 49723

原创 Opencv:10个步骤检测出图片中条形码

10个步骤找到图片中条形码:1. 原图像大小调整,提高运算效率2. 转化为灰度图3. 高斯平滑滤波4.求得水平和垂直方向灰度图像的梯度差,使用Sobel算子5.均值滤波,消除高频噪声6.二值化7.闭运算,填充条形码间隙8. 腐蚀,去除孤立的点

2016-08-02 16:29:50 24471 5

原创 形态学边界提取

Opencv中函数getStructuringElement()可以生成形态学操作中用到的核,函数原型:Mat getStructuringElement(int shape, //核的形状 0:矩形 1:十字交叉形 2: 椭圆 Size ksize,//核大小 Point anchor=Point(-1,-1) //核中心位置,默认位于形状中心处

2016-08-01 21:58:03 14876 1

原创 贪吃蛇小游戏—C++、Opencv编写实现

贪吃蛇游戏,C++、Opencv实现设计思路:1.显示初始画面,蛇头box初始位置为中心,食物box位置随机2.按随机方向移动蛇头,按a、s、d、w键控制移动方向,分别为向左,向下,向右,向上3.蛇头位置与食物box位置重合,则把食物box加入到蛇身向量arraryBox里,并设置食物box为第一个元素4.蛇身各个box移动规律是,每次移动后一个box的位置变为前一个box的位置5.蛇头移动超越边界,游戏结束开始界面:

2016-08-01 00:31:21 4377 1

Tensorflow-Multi-GPU-Training.rar

使用Tensorflow数据并行,多GPU训练的demo。模型是一个image2image的模型,参考了dncnn。训练数据转为TFRecord文件。

2020-07-28

pytorch训练图像分类模型pth转ONNX并测试

1. 搭建自己的简单二分类网络,使用pytorch训练和测试; 2. 将pytorch训练的pth模型转换成ONNX,并编码测试; 3. 含训练和测试数据,含训练ok的pth模型和ONNX模型,含完整python和C++实现; 4. 使用方法:首先运行“TrainTestConvertOnnx.py”执行“训练数据读入、模型训练、模型测试、导出onnx”,再运行“TestOnnx.cpp”测试onnx(需要配置OpenCV);

2019-10-29

基于生成对抗网络的图像去模糊

1. 根据给定的模糊图像生成视觉上完整并且统计上一致的去模糊图像,提升模糊图像的清晰度,使用生成性对抗网络(GAN)为基础的深度学习架构; 2. 含训练数据、训练代码以及测试样例,基于keras框架。

2018-08-22

Tensorflow训练的角度检测Resnet模型

Tensorflow训练的角度检测Resnet模型,分为4个分类,用来检测文本角度

2018-05-24

SqueezeNet模型文件及使用

SqueezeNet是一个小型化的网络模型结构,在保证不降低检测精度的同时,将原始AlexNet模型压缩至原来的1/500(模型文件< 0.5MB,原始AlexNet模型约为200MB)。

2018-03-15

Tensorflow文字定位、tesseract识别

Tensorflow文字定位、tesseract识别

2018-02-13

CNN+GRU+CTC不定长中文识别模型训练和测试

Keras训练CNN+GRU+CTC不定长中文识别模型工程代码,含模型文件

2018-02-10

tensorflow训练的识别验证码模型

注意:本资源是文章“tensorflow训练验证码识别模型”(https://blog.csdn.net/dcrmg/article/details/79005532#comments)的示例模型,分享的目的仅仅是为了让整个训练测试流程可以跑通,不保证准确率!不保证准确率!不保证准确率!训练流程都懒得跑一下,只想着下载别人一个模型可以打天下的伸手党请绕道!!! 以下是原始说明: 用tensorflow训练的识别数字验证码的模型,包括checkpoint、crack_capcha.model-1600.data-00000-of-00001、crack_capcha.model-1600.index和crack_capcha.model-1600.meta 共4个文件

2018-01-08

python中xlutils模块(版本2.0)

python中生成一个xls/xlsm文件使用xlwt模块,读取本地的xls文件使用xlrd模块; xlutils模块实现读取本地的xls文件并编辑后保存回本地的功能,是xlrd和xlwt两个模块的桥梁。

2017-10-26

jTessBoxEditorFx-2.0-Beta part2(part1&&part2;)

jTessBoxEditorFx-2.0-Beta 第二部分,共两个部分,jTessBoxEditor用于tesseract字符样本训练过程中合并图片和调整 .box 训练文件;支持中文字符编辑和训练

2017-10-14

jTessBoxEditorFx-2.0-Beta part1(part1&&part2;)

jTessBoxEditor2.0 Fx版本,用于tesseract训练中合并训练图片和 .box 文件调整。支持中文编辑,第一部分,共两个部分

2017-10-14

Windows平台下 Java运行时环境(虚拟机)安装包javaSetup8u144.exe

Windows平台下 Java运行时环境(虚拟机)安装包javaSetup8u144.exe

2017-10-14

tesseract简体中文语言包chi_sim.traineddata

tesseract简体中文识别包chi_sim.traineddata文件,不用提醒说要把文件放到...\Tesseract-OCR\tessdata\文件下吧? 聪明的你可以在这里免费下到tesseract所有的语言包:https://github.com/tesseract-ocr/tessdata/find/master

2017-10-14

Windows下Tesseract 4.0安装包

Windows平台下tesseract4.0版本安装包,无意收分,无奈平台规定最少2分,无分的同学可以去这里下载,一样一样的~~~ http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe

2017-10-14

图片标注工具LabelImg v1.3.3

LabelImg_win版用于图片标注,可方便创建自己的数据集,方便进行深度学习训练。这个是WINDOWS平台版本不需编译。

2017-09-12

张正友相机标定Opencv实现(完整程序+棋盘图)实例源码

张正友相机标定Opencv实现,附棋盘图和14张不同角度标定图。 包含完整的工程代码,有详细的注释说明,一键运行。实现了相机标定、输出相机内参、外参、旋转和平移矩阵、标定效果评价、以及使用标定结果对原始棋盘图进行矫正。

2016-10-26

贪吃蛇小游戏实现

贪吃蛇游戏,C++、Opencv实现 设计思路: 1.显示初始画面,蛇头box初始位置为中心,食物box位置随机 2.按随机方向移动蛇头,按a、s、d、w键控制移动方向,分别为向左,向下,向右,向上 3.蛇头位置与食物box位置重合,则把食物box加入到蛇身向量arraryBox里,并设置食物box为第一个元素 4.蛇身各个box移动规律是,每次移动后一个box的位置变为前一个box的位置 5.蛇头移动超越边界,游戏结束

2016-08-01

90年代经典“手游”—拼图板小游戏Opencv实现

Opencv通过模板匹配和鼠标响应函数实现90年代风靡全国小盆友的经典“手游”拼图板小游戏,类似于Windows 7自带小工具“图片拼图板”,支持设置拼图板的行数和列数,有兴趣可以下载来玩一玩

2016-07-29

直方图反向投影的肤色检测

肤色检测的基本步骤: 1.截取一部分肤色区域,作为检测目标的样本; 2.对样本做直方图计算,并归一化直方图; 3.利用归一化后的直方图,通过calcBackProject函数在原图像中检索,与样本具有表现一致的直方图区域将会被作为肤色检测出来;

2016-07-28

空空如也

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

TA关注的人

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