C/C++
文章平均质量分 53
Bicelove
图像识别、深度学习
展开
-
int _tmain(int argc, _TCHAR* argv[])字符串参数转整型
1、字符串参数:string video_dir = T2A(argv[1]);2、整型参数:int det_start = _tstoi(argv[2]);参考:1、c/c++ int _tmain(int argc, _TCHAR* argv[])2、_TCHAR转int,int转_TCHAR3、_tmain(int argc, _TCHAR* ARGV[])下命令行参数用法4、Unicode...原创 2018-03-28 14:41:51 · 6560 阅读 · 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 · 2074 阅读 · 0 评论 -
/lib64/libboost_system.so.1.53.0: could not read symbols: 无效的操作
1、问题描述:如下makefile:###### compilerCXX :=g++CC :=gcc#shared librarySFLAG := -fPIC -shared####### includeINCLUDE = -I/usr/local/include -I/usr/local/cuda/include -I/usr/local/atlas/include###原创 2016-12-19 19:41:41 · 2598 阅读 · 1 评论 -
undefined reference to `memcpy@GLIBC_2.14'
1、问题描述:原makefile如下:###### compiler ######CXX :=g++CC :=gcc###### shared library ######SFLAG := -fPIC -shared###### include && lib ######INCLUDE = -I/usr/local/include -I/usr/local/cuda/inclu原创 2016-12-15 21:14:22 · 13122 阅读 · 0 评论 -
/usr/local/lib/libopencv_highgui.so:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
1、问题描述:在编译普通C++文件的makefile时,一直有如题等问题出现,如下:/usr/local/lib/libopencv_highgui.so:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用/usr/local/lib/libopencv_highgui.so:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用/usr/local/lib/libo原创 2016-12-13 15:27:33 · 10291 阅读 · 0 评论 -
C++ char* 的若干问题之二:char*作为形参能否影响实参的值
有如下方法:int readFeat(char* param){ param = (char *) malloc(10 * sizeof(char)); param = "test char"; param = '\0'; return 0;}在该方法中,param进行malloc时重新指向了新申请的空间,地址已不再是送入函数时的指向了,同时它也无法影响到实参的...原创 2016-12-12 21:09:50 · 4960 阅读 · 2 评论 -
C++ char* 的若干问题之一
已有方法: //十进制转二进制char* decimal2binary( int numth) { string key; bitset t; t = numth; key = t.to_string(); char* ch = const_cast(key.c_str()); //const char* 转 char* return ch;}有如下调用:char原创 2016-12-12 20:49:06 · 628 阅读 · 0 评论 -
Ubuntu下编译C++文件——致命错误:写入 /tmp/ccR5mEZB.s 时出错:设备上没有空间
1、问题描述:书写C++代码进行编译时,针对多个.cpp文件生成.o文件时出现错误,如下:致命错误:写入 /tmp/ccR5mEZB.s 时出错:设备上没有空间2、问题解决:自己指定临时编译环境,不使用系统/tmp目录:mkdir /home/user/tmpexport TMPDIR=/home/user/tmp其中,第一行命令表示在/home/user原创 2016-11-21 18:20:32 · 5459 阅读 · 0 评论 -
C++ 不能通过‘...’传递有不能平凡复制的类型‘const string {aka const class std::basic_string<char>}’
源码:char szImgPath[1000];string loadImgPath;//string to char*sprintf( szImgPath, "%s.jpg", loadImgPath ); //char* to stringloadImgPath = szImgPath;该代码编译到sprintf时会提示以下错误:不能通过‘...’传递有不能平凡复制的原创 2016-11-03 17:09:49 · 15470 阅读 · 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 · 6694 阅读 · 0 评论 -
C++ RGB图片限定最长边进行resize
1、功能描述:对于已有图片,限定其最长边在某个值之内(最短边原理一致);2、IplImage*代码实现:IplImage *ReadImageToResize( IplImage* pSrcImage, //原图 const int l_side) //最长边阈值 { int height , width; //原创 2017-01-06 19:41:31 · 1241 阅读 · 0 评论 -
C++ int转string
1、问题描述:对于已有int及string:int value = 10;string str = "num_";欲将value与str组成新的字符串;2、方法实现://使用stringstream需要添加头文件#include stringstream stream;stream<<value; string_temp = stream.str();//新的原创 2017-01-18 15:38:42 · 640 阅读 · 0 评论 -
undefined reference to symbol 'cvReleaseImage'
makefile编译错误:/usr/bin/ld: /tmp/ccSjb8MC.o: undefined reference to symbol 'cvReleaseImage'/usr/lib64/libopencv_core.so.2.4: error adding symbols: DSO missing from command line该问题提示cvReleaseImage定义在原创 2017-12-19 11:12:47 · 1049 阅读 · 0 评论 -
C++ 浮点数比较
“大于”“小于”“等于”比较float v1 = 1.0;float v2 = 1.0;两数并不满足v1 >= v2 或者 v1 abs(v1 - v2) >= 1e-7abs(v1 - v2)原创 2017-07-27 16:20:24 · 4455 阅读 · 2 评论 -
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 · 4936 阅读 · 1 评论 -
data augmentation 数据增强方法总结
1、问题描述收集数据准备微调深度学习模型时,经常会遇到某些分类数据严重不足的情况,另外数据集过小容易造成模型的过拟合。本文参考和中对于数据增强方法的一些tips,后续会附上自己实现的C++代码;2、data augmentation常用方法Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度变化(此处对色彩抖动的理解不知是否得当);PCA J原创 2017-03-07 14:34:44 · 48365 阅读 · 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 · 3342 阅读 · 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 · 7106 阅读 · 1 评论 -
C++ fopen按行读取文件及所读取的数据问题
1、已有文本文件:string dataList;使用fopen读取:FILE *fpListFile = fopen(dataList.c_str(), "r");if (!fpListFile){ cout << "0.can't open " << dataList << endl; return -1;}2、按行读取数据:方法一:char loadIm原创 2017-03-03 20:50:30 · 13696 阅读 · 0 评论 -
C++ vector<int>向量越界。。。运行段错误退出但gdb未定义到错误位置
又是一段辛酸史,又是自己的粗心。。。(大哭中)1、问题描述处理一个图像分类问题,本来只是简单得统计下测试集的查准和查全,由于不停在调整分类大小,所以首先使用宏定义类的大小为NUMCLASS:#define NUMClASS 54 然后,声明vector向量时初始化了其大小如下:vector numLabels(NUMClASS, 0);vector numAccuracy(NUM原创 2017-03-03 17:16:08 · 2902 阅读 · 1 评论 -
C++ access函数所需包含的头文件
1、编译包含access函数的源码时,提示:错误: ‘access’在此作用域中尚未声明 其中,已包含头文件如下:#include #include #include #include #include原创 2017-02-15 16:03:14 · 27679 阅读 · 1 评论 -
C++ 错误: ‘std::vector<float> feat’的声明隐藏了一个形参
错误: ‘std::vector feat’的声明隐藏了一个形参原因:函数形参里有std::vector &feat参数,但是在函数中不小心又重新定义了变量std::vector feat;原创 2016-03-04 16:49:29 · 4224 阅读 · 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 · 3728 阅读 · 0 评论 -
C++ RGB图片色阶调整(Ubuntu)
声明:本文参考阿发伯的博客:C++图像处理——图像色阶调整 一文改写,由于原文使用到Gdi等,我在Ubuntu下并未配置相应环境,且不使用Bitmap数据结构,遂参考原文思路改写了部分代码,并使用部分已有的数据结构,本文均将列出,如有理解错误之处,望大家不吝指正。算法思路(摘自:C++图像处理——图像色阶调整):Photoshop的色阶调整分输入色阶调整和输出色阶调整,其中原创 2016-08-24 15:05:40 · 2777 阅读 · 0 评论 -
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 · 2831 阅读 · 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 · 6214 阅读 · 2 评论 -
C++ 按行读取文件并按空格将数据存储为vector
应用:1、现有一个txt文件,路径及名称存储为loadFeatList;2、文件存储了多行特征数据;3、每行存储一幅图片的特征,共2048个float数据,按空格分开;4、欲将其按行读取,存为一个vectoer数据,其中每个vector存储每行按空格分开的数据;代码实现如下: std::ifstream infile_feat(loadFeatList); std::st原创 2016-04-27 15:28:49 · 14969 阅读 · 3 评论 -
terminate called after throwing an instance of 'std::bad_alloc
程序一直出现terminate called after throwing an instance of 'std::bad_alloc开始以为是内存泄漏等什么问题,不停调试malloc和free还是不行。。。原创 2016-04-18 16:10:20 · 38179 阅读 · 0 评论 -
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 · 5145 阅读 · 2 评论 -
C++ 将float数据归一化到[0,1]
std::ofstream fileout(‘features_normalize.txt’,std::ios::app); float ymax = 1; //归一化数据范围float ymin = 0; float feature_blob_data[5] = [-1.254,0.254,2.147,-3.456,4.257];//初始化浮点数std::vector features;原创 2016-02-22 21:49:28 · 8448 阅读 · 0 评论 -
C++ 将浮点数的前四位存为string
首先,生成浮点数:float idx_score = 0.555687;其次,定义string变量:std::stringstream score_temp;定义char数组变量:char tPath[5];使用sprintf函数写入:sprintf(tPath, "%.4f", idx_score);注:sprintf是C++继承自C语言的函数,无法直接支持string类原创 2016-02-18 15:27:21 · 984 阅读 · 0 评论 -
Matlab与C++混合MEX编程
与C中的main函数一样,MEX程序中的开始函数为mexFunction.默认变量参数是:void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])其中nlhs指的是在调用函数时返回值的个数;plhs[]是每个返回值(在MATLAB中都是矩阵)的指针;nrhs指的是转载 2014-07-10 16:58:18 · 1719 阅读 · 0 评论 -
关于Visual Studio 2010与64位系统的问题
1. VS2010没有专门的64位版。但32位版可以在64位系统上面正常使用。2. 如果安装VS2010的时候,在安装选项里面,选择了 X64 Compilers and Tools那么你就可以编译x64版本的程序;同理如果你在安装选项里面选择了Itanium Compilers and Tools那么你就可以编译IA64版本的程序;当然如果你安装VS2010的时候选转载 2014-05-23 21:11:02 · 2236 阅读 · 0 评论 -
C++ IplImage 读取imagedata内的数据
读入一副图片,将其像素值写入txt文件中:IplImage* img=cvLoadImage(imageName);std::ofstream fileout("/home/in66/test/imgtest.txt");std::coutwidthheightwidthStep;for(int y=0;yheight;y++){ unsigned char* p=(unsigned原创 2016-03-04 15:28:31 · 5321 阅读 · 0 评论 -
Ubuntu下 C++ 创建、删除目录
创建目录 int mkdir(const char *pathname, mode_t mode); 成功返回0,错误返回-1.改变当前目录 int chdir(const char *path); 成功返回0,错误返回-1.文件是否存在或是否可读可写 int access(const c转载 2016-04-22 14:04:15 · 4555 阅读 · 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 · 12235 阅读 · 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 · 2984 阅读 · 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 · 3887 阅读 · 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 · 2127 阅读 · 0 评论 -
C++ 将一幅图片进行等分
应用:欲将任意尺寸的一副图片,分别在横向和纵向上进行N等分,这里N = subImageNum。实现函数如下:int subImageExtract( const int subImageNum, //等分数目 const Mat src, //原图 vector &subImages) //等原创 2016-07-02 17:00:34 · 3038 阅读 · 0 评论