- 博客(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
2020-07-28
pytorch训练图像分类模型pth转ONNX并测试
2019-10-29
基于生成对抗网络的图像去模糊
2018-08-22
SqueezeNet模型文件及使用
2018-03-15
tensorflow训练的识别验证码模型
2018-01-08
python中xlutils模块(版本2.0)
2017-10-26
jTessBoxEditorFx-2.0-Beta part2(part1&&part2;)
2017-10-14
jTessBoxEditorFx-2.0-Beta part1(part1&&part2;)
2017-10-14
Windows平台下 Java运行时环境(虚拟机)安装包javaSetup8u144.exe
2017-10-14
tesseract简体中文语言包chi_sim.traineddata
2017-10-14
Windows下Tesseract 4.0安装包
2017-10-14
张正友相机标定Opencv实现(完整程序+棋盘图)实例源码
2016-10-26
贪吃蛇小游戏实现
2016-08-01
90年代经典“手游”—拼图板小游戏Opencv实现
2016-07-29
直方图反向投影的肤色检测
2016-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人