图形图像
文章平均质量分 66
Bicelove
图像识别、深度学习
展开
-
python3下使用cv2.imwrite存储视频帧
def getFrame(videoPath, svPath): cap = cv2.VideoCapture(videoPath) numFrame = 0 while True: if cap.grab(): flag, frame = cap.retrieve() if not flag:原创 2018-01-27 18:46:02 · 8774 阅读 · 0 评论 -
C++ 从一幅图片上裁取需要的区域
1、MatMat src, image_src; //原图 Mat imageROI; //ROI区域Mat TempImg; //裁取出的区域存储为Matint x_begin, y_begin, width, height; //裁取区域的坐标及大小src = imread("test.jpg", 1);if(!src.data){ cout<<原创 2016-07-10 17:50:18 · 12177 阅读 · 0 评论 -
C++ RGB图片垂直翻转
int API_IMGEXPAND::imgVerticalRotary( const Mat srcImg, //输入图片 Mat &VertImg) //输出图片{ if(!srcImg.data){ LOOGE<<"[image error!]"; return -1; } // int nRet = 0; int j_原创 2016-07-26 16:15:25 · 2963 阅读 · 0 评论 -
C++ RGB图片任意角度旋转
int imgRotary( const Mat srcImg,//输入图片 const double degree,//旋转角度 const bool clockwise,//旋转方向:顺时针或者逆时针 Mat &VertImg)//输出图片{ if(!srcImg.data){ LOOGE<<"[image e原创 2016-07-26 16:22:31 · 3853 阅读 · 0 评论 -
C++ RGB图片水平翻转
int API_IMGEXPAND::imgHorizontalRotary( const Mat srcImg, //输入图片 Mat &HoriImg) //输出图片{ if(!srcImg.data){ LOOGE<<"[image error!]"; return -1; } int nRet = 0; int j_r,原创 2016-07-26 16:13:09 · 2103 阅读 · 0 评论 -
C++ 将一幅图片进行等分
应用:欲将任意尺寸的一副图片,分别在横向和纵向上进行N等分,这里N = subImageNum。实现函数如下:int subImageExtract( const int subImageNum, //等分数目 const Mat src, //原图 vector &subImages) //等原创 2016-07-02 17:00:34 · 3008 阅读 · 0 评论 -
C++ 判断一幅图片中的两个矩形区域是否邻近
应用:存在于一幅图片中的两个矩形区域,计算其距离并判断其是否邻近。邻近则返回真,否则返回假。(注:我在此处存储矩形的数据格式为vector,方便自己读写数据)int API_CONTOURRECTS::rectsIfMerge( const vector contRectI, //矩形框I const vector contRectJ, //矩形原创 2016-07-10 18:21:12 · 3229 阅读 · 2 评论 -
C++ Mat 读取imagedata内的数据
应用:将三通道彩色图的Mat数据,转存为单通道灰度图的unsigned char*数据: Mat ImageMedia; //读取 unsigned char *pGrayImage; //存入 int xsize = ImageMedia.cols; int ysize = ImageMedia.rows; pGrayImag原创 2016-07-02 16:23:11 · 4650 阅读 · 1 评论 -
C++ 图片从底部做直线检测
主要代码:int ImageDeal::findLines( IplImage* I, std::vector> &lines) { int x_threshold = 2; //x轴方向x_threshold范围内存在要检测的点,即看作直线连续 double width_proportion = 0.2; //直线连续超过图片宽度的width_proportion时,确定为一条跨原创 2016-04-29 17:17:35 · 4971 阅读 · 6 评论 -
C++ RGB图片色阶调整(Ubuntu)
声明:本文参考阿发伯的博客:C++图像处理——图像色阶调整 一文改写,由于原文使用到Gdi等,我在Ubuntu下并未配置相应环境,且不使用Bitmap数据结构,遂参考原文思路改写了部分代码,并使用部分已有的数据结构,本文均将列出,如有理解错误之处,望大家不吝指正。算法思路(摘自:C++图像处理——图像色阶调整):Photoshop的色阶调整分输入色阶调整和输出色阶调整,其中原创 2016-08-24 15:05:40 · 2749 阅读 · 0 评论 -
C++ IplImage*的若干bug之一:cvCreateImage问题
源代码:IplImage* image_src, TempImg; //定义两个IplImage*变量IplImage *image = cvLoadImage(“test.jpg”); //加载一幅图片int width = image->width;int height = image->height;image_src = cvCloneImage(image); cv原创 2016-08-15 11:19:53 · 3706 阅读 · 0 评论 -
C++ IplImage*的若干bug之三:cvSaveImage问题
源代码://crop imageIplImage *imgTemp = imgcrop(rect, img); //从原图img中裁剪出rect区域的图像patch,该方法编译运行均无误if(!imgTemp){ LOOGE<<"[Fail to crop image patch!!!]"; cvReleaseImage(&imgTemp);imgTemp = 0; //如果裁原创 2016-11-03 16:36:28 · 6659 阅读 · 0 评论 -
C++ 图像边界扩充函数copyMakeBorder
实验目的:将任意一张图片按其最长边扩展为正方形图片:1、Mat实现//int expandImg( const Mat srcImg, Mat &dstImg){ if(!srcImg.data || srcImg.channels()!=3){ cout<<"Can't open srcImg!"<< endl;原创 2017-03-16 15:56:36 · 4886 阅读 · 1 评论 -
data augmentation 数据增强方法总结
1、问题描述收集数据准备微调深度学习模型时,经常会遇到某些分类数据严重不足的情况,另外数据集过小容易造成模型的过拟合。本文参考和中对于数据增强方法的一些tips,后续会附上自己实现的C++代码;2、data augmentation常用方法Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度变化(此处对色彩抖动的理解不知是否得当);PCA J原创 2017-03-07 14:34:44 · 48287 阅读 · 13 评论 -
C++ RGB图片对比度调整
int imgContrast( const Mat srcImg,//输入图片 const float contrast,//对比度比值 Mat &outImg)//输出图片{ if(!srcImg.data){ LOOGE<<"[image error!]"; return -1; } // int n原创 2016-07-26 16:35:28 · 3325 阅读 · 0 评论 -
C++ RGB图片亮度调整
int imgBrightness( const Mat srcImg,//输入图片 const float brightness,//亮度比值 Mat &outImg)//输出图片{ if(!srcImg.data){ LOOGE<<"[image error!]"; return -1; } // int nRet原创 2016-07-26 16:29:14 · 7065 阅读 · 1 评论 -
图像分类笔记
声明:本文笔记是阅读知乎杜客的图像分类笔记系列而总结,文中不少语句参考了原文作者,请知晓。1、分类问题已有固定分类标签,对于输入的图像,预测其所属的分类标签。2、问题难点图像视角变化(viewpoint variation)图像大小变化(scale variation)图像形变(deformation)图像遮挡(occlusion)图像光照条件(illumi原创 2017-03-02 14:13:06 · 1603 阅读 · 1 评论 -
C++ RGB图片限定最长边进行resize
1、功能描述:对于已有图片,限定其最长边在某个值之内(最短边原理一致);2、IplImage*代码实现:IplImage *ReadImageToResize( IplImage* pSrcImage, //原图 const int l_side) //最长边阈值 { int height , width; //原创 2017-01-06 19:41:31 · 1219 阅读 · 0 评论 -
C++ IplImage*的若干bug之二:cvReleaseImage问题
源代码:IplImage* image_src; //定义IplImage*变量IplImage *image = cvLoadImage(“test.jpg”); //加载一幅图片int width = image->width;int height = image->height;if(width < 1 || height < 1){ cout<<" width = "原创 2016-08-15 11:21:07 · 2040 阅读 · 0 评论 -
pooling
一般有convolution的地方也会有pooling 虽然按照convolution的方法可以减小不少需要训练的网络参数,比如说96*96,,100个隐含层的,采用8*8patch,也100个隐含层,则其需要训练的参数个数减小到了10^3,大大的减小特征提取过程的困难。但是此时同样出现了一个问题,即它的输出向量的维数变得很大,本来完全连接的网络输出只有100维的,转载 2014-04-29 16:58:59 · 7186 阅读 · 2 评论 -
C++ 图像RGB直方图特征提取
int ImageDeal::imgRGBHist( std::vector &features, IplImage* src, int R_bins, int G_bins, int B_bins ){ int jobflag = 2; IplImage* r_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage*原创 2016-04-29 16:16:14 · 2813 阅读 · 0 评论 -
C++ 在图片上打印文字并保存图片
int Feature_Prediction::score_record(IplImage* image, string scoreNum, float score ){ CvFont font; //传值给cvPutText()的CvFont double hscale = 1.0; double vscale = 1.0; int linewidth = 2; cvInitFont原创 2016-05-04 17:47:34 · 6179 阅读 · 2 评论 -
C++ 设定图像最大边长度并原比例压缩图片
// read and resize images:filename,图片名称;savepath,保存压缩后的图片路径;l_side设定图片最长边大小;is_rgb,图片是否为彩色;img_num,处理第几张图片int ReadImageToResize(const string& filename,const string& savepath, const int l_sid原创 2016-05-26 12:04:23 · 5127 阅读 · 2 评论 -
codebook算法(背景建模)的原理
导读《Learning OpenCV》一书当中介绍的第二种背景建模方法是codebook。直接通过书本来理解codebook算法有点困难,可以按照下面的顺序来理解codebook算法,首先看看百度百科上对这个算法的基本原理的阐述,我认为百度百科上的描述已经比较直观,但当中有很多细节的东西还需要看具体的代码,所以可以通过细读下面转载的代码来理解codebook算法,理解代码的过程需要有点耐心转载 2014-09-05 14:53:02 · 10576 阅读 · 0 评论 -
MATLAB学习笔记 将彩色的图像转化为灰度图像
MyYuanLaiPic = imread('e:/image/matlab/darkMouse.jpg');%读取RGB格式的图像MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换[rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像的矩阵的参数MidGray转载 2014-07-07 14:20:57 · 4267 阅读 · 0 评论 -
人脸数据库汇总
转自:http://blog.csdn.net/lambol_8309/article/details/4494381转载 2014-05-13 14:22:30 · 985 阅读 · 0 评论 -
图像数据预处理(上)
概要数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果。然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见。在本页中,我们希望能够揭开预处理方法的神秘面纱,同时为预处理数据提供技巧(和标准流程)。提示:当我们开始处理数据时,首先要做的事是观察数据并获知其特性。本部分将介绍一些通用的技术,在实际中应该针对具转载 2014-04-23 11:22:19 · 20098 阅读 · 1 评论 -
图像放大并进行BiCubic插值 Matlab/C++代码
BiCubic插值原理:双三次插值又称立方卷积插值。三次卷积插值是一种更加复杂的插值方式。该算法利用待采样点周围16个点的灰度值作三次插值,不仅考虑到4 个直接相邻点的灰度影响,而且考虑到各邻点间灰度值变化率的影响。三次运算可以得到更接近高分辨率图像的放大效果,但也导致了运算量的急剧增加。这种算法需要选取插值基函数来拟合数据,其最常用的插值基函数如图1所示,本次实验采用如图所示函数作为基函数。转载 2014-04-23 11:00:47 · 28243 阅读 · 13 评论 -
图像数据预处理(下)
1、 将彩色图像转换为灰度图,其中有三种方法:最大值法、平均值法和各比例法。 (1) 最大值法:就是获取图像中的每一个像素值,并且分别获得像素的RGB个分量值(GetRValue(COLORREF pixel), GetGValue(COLORREF pixel), GetBValue(COLORREF pixel)),然后取三个分量的中最大的一个作为像素的分量值; (转载 2014-04-23 13:00:34 · 1817 阅读 · 0 评论 -
SIFT算法的一些基本概念
基本概念:降采样:对于一幅图像而言的降采样就是每隔几行、几列得到取一点,组成一个新的图像。以比例因子为2(fact of 2)的降采样来说:就是対一幅图像每隔一行一列取一点。对于n×n的图像就变为n/2×n/2的图像了。比例因子为2的降采样是SFIT要用到的!升采样:其实一种插值,就是在一幅图像里利用相关的插值运算得到一幅大的图像!比如比例因子为2的升采样就是每个相转载 2014-05-01 20:22:00 · 1211 阅读 · 0 评论 -
图像采样
降采样:2048HZ对信号来说是过采样了,事实上只要信号不混叠就好(满足尼奎斯特采样定理),所以可以对过采样的信号作抽取,即是所谓的“降采样”。在现场中采样往往受具体条件的限止,或者不存在300HZ的采样率,或调试非常困难等等。若R>>1,则Rfs/2就远大于音频信号的最高频率fm,这使得量化噪声大部分分布在音频频带之外的高频区域,而分布在音频频带之内的量化噪声就会相应的减少,于是,通过低转载 2014-05-01 20:33:11 · 5455 阅读 · 0 评论 -
Deep Learning模型之:CNN的反向求导及练习
前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它。虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好。而本文的主要目的是介绍CNN参数在使用bp算法时该怎么训练,毕竟CNN中有卷积层和下采样层,虽然和MLP的bp算法本质上相同,但形式上还是有些区别的,很显然在完成CNN反向传播前了解bp算法是必须转载 2014-08-23 19:59:06 · 13969 阅读 · 0 评论 -
Deep Learning模型之:CNN卷积神经网络推导和实现
本文的论文来自:Notes on Convolutional Neural Networks, Jake Bouvrie。 这个主要是CNN的推导和实现的一些笔记,再看懂这个笔记之前,最好具有CNN的一些基础。这里也先列出一个资料供参考:[1] Deep Learning(深度学习)学习笔记整理系列之(七)[2] LeNet-5, con转载 2014-08-23 19:45:56 · 32993 阅读 · 1 评论 -
图像特征提取
特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。 特征的定义 至今为止特征没有万能和精确的定义。特征的精确定义往往由问题或者应用类型决定。特征是一个数字图像中“有趣”的部分,它是许多计算机图像分析算法的起点转载 2014-09-06 17:03:09 · 2027 阅读 · 1 评论 -
图像信息熵matlab代码
function [entr,ind] = entrCompute(entr,OutImg,NumFilters)%计算OutImg的信息熵entropyfor id = 1 : numel(entr) for jd = 1 : NumFilters entr{id}(jd) = Imentropy(OutImg{(id - 1) * NumFilters + jd})原创 2014-08-23 16:34:54 · 19930 阅读 · 0 评论 -
图像归一化
图片标准化通常是一个整体概念,要求把图片归一到均值为0,方差为1的情况下。这个概念类识于一般正态分布向标准正态分布的转化: (image-Mean)/Variance 其中, Mean和 Variance分别为矩阵的均值和方差。matlab code:function [image] = ImageNormalize(Image)Image=double原创 2014-05-11 16:41:27 · 44845 阅读 · 2 评论 -
Zero Mean Normalization
Zero-mean normalization is also called Z-score normalization. The values of attribute X are normalized using the mean and standard deviation of X. A new value new_v is obtained using the following exp转载 2015-03-06 13:03:43 · 3464 阅读 · 0 评论 -
判别式模型与生成式模型
判别式模型与生成式模型发表于2011-09-16摘要 生成式模型:无穷样本 -> 概率密度模型 = 产生式模型 -> 预测 判别式模型:有限样本 -> 判别函数 = 判别式模型 -> 预测简介 简单的说,假设 o 是观察值,m 是模型。 如果对 P(o|m) 建模,就是生成式模型。其基本思想是首先建立样本的概率密转载 2014-11-25 15:22:10 · 1557 阅读 · 0 评论 -
Locality Preserving Projections局部保持投影
本文是对何晓飞老师的论文Locality Preserving Projections的yixielijie原创 2014-09-03 16:39:44 · 13457 阅读 · 0 评论 -
PCA 降维算法详解 以及代码示例
1. 前言 PCA : principal component analysis ( 主成分分析)最近发现我的一篇关于PCA算法总结以及个人理解的博客的访问量比较高, 刚好目前又重新学习了一下PCA (主成分分析) 降维算法, 所以打算把目前掌握的做个全面的整理总结, 能够对有需要的人有帮助。 自己再看自己写的那个关于PCA的博客, 发现还是比较混乱的, 希望这里能过做好整理。 本转载 2014-08-25 14:57:17 · 1918 阅读 · 0 评论