![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
一名CV界的小学生
这个作者很懒,什么都没留下…
展开
-
linux: dirent.h 使用
头文件:dirent.h代码:void direntTest(){ std::string rootPath="/home/.../test/samples"; std::vector<std::string> imageNames; auto dir=opendir(rootPath.c_str()); if((dir)!= nullptr) { struct dirent *entry; entry=r原创 2022-01-13 13:49:18 · 1054 阅读 · 0 评论 -
计算函数执行时间chrono
auto t_start=std::chrono::high_resolution_clock::now(); label= readImageNetLabel(fileDir); auto t_end=std::chrono::high_resolution_clock::now(); float total_cost=std::chrono::duration<float,std::milli>(t_end-t_start).count(); std...原创 2022-01-12 15:43:00 · 189 阅读 · 0 评论 -
C++ STL:map,string
#include <iostream>#include "map"#include "string"#include "fstream"std::map<int,std::string> readImageNetLabel(const std::string &fileName){ std::map<int,std::string> imagenetLabel; std::ifstream file(fileName); if.原创 2022-01-12 15:15:10 · 364 阅读 · 0 评论 -
YOLO:darknet model 推理 备忘
#include <iostream>#include <string>#ifdef linux#define OPENCV#define GPU#endif#include "yolo_v2_class.hpp" // imported functions from DLL#include "opencv2/opencv.hpp" // C++#include <opencv2/highgui/highgui.hpp>void draw_box.原创 2021-10-28 16:08:19 · 246 阅读 · 0 评论 -
opencv API getTickCount
double t = (double)getTickCount(); // do something ...t = ((double)getTickCount() - t)/getTickFrequency();double t = (double)getTickCount();//The function returns the number of ticks per second. That is, the following code computes the execution ti.原创 2021-03-23 14:22:52 · 129 阅读 · 0 评论 -
opencv 计算两幅图像相似度(欧氏距离,余弦距离)
功能:利用HOG特征比较两幅图像的相似度opencv PAI:CV_WRAP HOGDescriptor(Size _winSize, Size _blockSize, Size _blockStride, Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1, int _histogramNormType=HOGDescriptor::L2原创 2021-05-14 16:16:18 · 7531 阅读 · 2 评论 -
opencv 视频中选择感兴趣区域(ROI)
opencv 使用到的主要接口:setMouseCallback()尝试加入C++对象的思想对主要方法进行封装。代码如下:MyVideoCapture.h 文件如下//// Created by wang on 2021/5/8.//#ifndef MOUSESELECT_EXAMPLE_00_MYVIDEOCAPTURE_H#define MOUSESELECT_EXAMPLE_00_MYVIDEOCAPTURE_H#include "MouseSelect.h"c原创 2021-05-10 14:54:11 · 723 阅读 · 0 评论 -
C/C++ 线程安全队列
一些相关的理论暂未查到,简单做个记录#include <iostream>#include "mutex"#include "condition_variable"#include "queue"#include "thread"#include "chrono"template<typename T>class ThreadSafeQueue{private: mutable std::mutex m_mutex; std::queue<原创 2021-04-22 14:40:22 · 305 阅读 · 0 评论 -
格式化输出当前时间:put_time
#include <iostream>#include "sstream"#include "ctime"#include "iomanip"void currTime_(){ auto t=time(nullptr); auto tm=*localtime(&t); std::ostringstream oss; oss<<std::put_time(&tm,"%d.%m.%Y %H:%M:%S:"); std.原创 2021-04-21 19:32:18 · 996 阅读 · 0 评论 -
图像处理:均值滤波
借助于opencv的数据类型Mat简单实现均值滤波,该代码并未考虑边缘影响#include <iostream>#include "vector"#include "algorithm"#include "opencv2/highgui.hpp"#include "opencv2/core/core.hpp"#include "opencv2/opencv.hpp"int mymean(int n1,int n2,int n3,int n4,int n5,int n6,int原创 2021-04-18 15:03:40 · 333 阅读 · 0 评论 -
图像处理:中值滤波
借助于opencv的数据结构Mat 实现图像处理中值滤波算法代码中刻意添加了椒盐噪声,凸显中值滤波的效果。#include <iostream>#include "vector"#include "algorithm"#include "opencv2/highgui.hpp"#include "opencv2/core/core.hpp"#include "opencv2/opencv.hpp"int mymedian(int n1,int n2,int n3,int n原创 2021-04-18 14:04:41 · 317 阅读 · 0 评论 -
STL:vector的操作
读书笔记:vector头文件:#include<vector>vector支持随机访问,因此只要知道位置,便可以在常量时间内访问任何一个元素。使用reserve()保留适当容量,避免重新分配内存。std::vector<int> v;// create an empty vectorv.reserve(80); // reserve memory for 80 elements避免重新分配内存的另一个方法是,初始化期间就向构造函数传递额外实原创 2021-04-15 23:23:22 · 124 阅读 · 0 评论 -
C++ API: yield函数
/** yield* 实现:std::this_thread::yield 命名空间实现* 作用:当前线程放弃执行,让操作系统调度另一线程继续执行* 例如:比如说你的线程需要等待某个操作完成,如果你直接使用一个循环* 不断判断这个操作是否完成就会使的这个线程占满cpu时间,这会造成资源* 浪费。此时,你可以判断一次操作是否完成,如果没有完成就调用yield* 交出时间片,过一会再来判断是否完成,这样这个线程占用CPU时间会大大* 减少。* 例如:** while(!isDone()).原创 2021-04-06 15:38:06 · 549 阅读 · 0 评论 -
图像处理:图像金字塔
#include <vector>#include <string>#include <iostream>#include <opencv2/opencv.hpp>int patch_size=32;const float scale_stride = sqrt(2);int scale_num = 8;void InitPry(const cv::Mat& frame, std::vector<float>& .原创 2021-03-31 22:48:45 · 133 阅读 · 0 评论 -
C++ getline 函数使用
函数接口:getline 函数接口使用#include <iostream>#include <string>#include <fstream>void cin_();void getline_();void getline_txt();int main(int,char**){// cin_();// getline_(); getline_txt();}void cin_(){ std::strin原创 2021-03-12 10:52:27 · 204 阅读 · 0 评论 -
C++ multimap容器使用
multimap 使用#include <map>#include <iostream>#include <string>int main(int,char**){ std::multimap<std::string, size_t> people {{"Ann", 25}, {"Bill", 46}}; people.insert原创 2021-03-11 17:24:05 · 196 阅读 · 0 评论 -
二维数组 一维指针数组 最小值
代码功能:将二维向量转成一维数组,查找每一行的最小值并在每一行减去该值,形成新的一维数组,见图像代码结果:代码展示:#include <vector>#include <iostream>#include <chrono>#include <assert.h>int main(int,char**){ std::vector<std::vector<double> >testMatrix={{1原创 2021-03-09 16:11:24 · 150 阅读 · 0 评论 -
vector 矩阵以一维向量的方式遍历
#include <vector>#include <string>#include <iostream>int main(int,char**){ int rows=4; int cols=4; std::vector<int>vec; vec.resize(16,0); // set some initial content: for(size_t i=0;i<vec.size();i++).原创 2021-03-05 11:57:42 · 179 阅读 · 0 评论 -
C++ vector resize
// resizing vector#include <iostream>#include <vector>int main (){ std::vector<int> myvector; // set some initial content: for (int i=1;i<10;i++) myvector.push_back(i); myvector.resize(5); myvector.resize(8,100); //m.原创 2021-03-05 09:37:36 · 210 阅读 · 1 评论 -
STL numeric_limits使用 返回编译器所允许相应类型的极值(极大/极小值)
#include<iostream>#include<string>#include<limits> //头文件using namespace std;int main(){ cout<<"numeric_limits<unsigned short>::min()= "<<numeric_limits<unsigned short>::min()<<endl; //unsigned short的最.原创 2021-02-26 15:35:13 · 91 阅读 · 0 评论 -
STL accumulate 累加接口使用
#include <numeric>#include <vector>#include <iostream>#include <string>struct Grade{ std::string name; int grade;};int main(int,char**){ std::vector<int>nums; for(int i=0;i<=100;i++){ nums.原创 2021-02-26 15:24:06 · 215 阅读 · 0 评论 -
Ubuntu pkg-config 管理不同版本的opencv
系统ubuntu 16.04opencv版本3.4.10 3.4.12两个版本共存第一步:对opencv.pc 进行相应文件名的更改例:在opencv3.4.10 /.../release/lib/pkgconfig文件下的opencv.pc 改为opencv3.4.10.pc第二步:在/etc/ld.so.config.d/路径下创建文件opencv3.4.10.conf该文件放置opencv3.4.10的动态库路径接着,执行命令sudo ldconfig -v |.原创 2020-12-11 16:23:10 · 291 阅读 · 0 评论 -
获取系统当前时间yyyy-MM-dd hh-mm-ss
#include <time.h>#include <stdio.h>int main(){ time_t tt=time(NULL); tm* t=localtime(&tt);// printf("%4d-%2d-%d %2d-%2d-%2d\n",t->tm_year+1900,// t->tm_mon+1,// .原创 2020-11-24 22:35:26 · 515 阅读 · 0 评论 -
sprintf 用法
// 函数// int sprintf(char *str,const char* format,...)// 头文件 #include<stdio.h>// 参数:// str -- 这是指向一个字符数组的指针,该数组存储了C字符串// foramt --这是字符串,包含了要被写入到字符串str的文本。// 它可以包含嵌入的 format 标签,format 标签可被随后的// 附加参数中指定的值替换,并按需求进行格式化。// format 标签属性是 %[flags][wi.原创 2020-11-24 22:10:38 · 142 阅读 · 0 评论 -
queue 以及 pair 例程
#include <utility>#include <string>#include <iostream>int main(){ std::pair<std::string,double> product_1; //default constructor std::pair<std::string,double> product_2("tomatoes",2.30); //value init std::p.原创 2020-11-21 21:35:54 · 732 阅读 · 0 评论 -
strcat以及strcpy
// 函数strcat()// 头文件#include<string.g>// char * strcat(char *dest,const char*src)// 把src所指向的字符串追加到dest所指向的字符串的结尾// dest -- 指向目标数组,该数组包含了一个C字符串,且足够容纳追加后的字符串// src -- 指向要追加的字符串,该字符串不会覆盖姆比哦呵字符串// 返回值// 该函数返回一个指向最终的目标字符串dest的指针#include <str.原创 2020-11-20 23:01:10 · 148 阅读 · 0 评论 -
通过多线程技巧的使用进行视频处理
其中一个线程用来获取视频流,一个线程用来显示,其余用于对视频帧的处理#include <thread>#include <mutex>#include <unistd.h>#include <sys/time.h>#include <opencv2/opencv.hpp>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include &l原创 2020-11-19 15:58:57 · 1853 阅读 · 1 评论 -
复制容器list中部分元素到另一个list中 C++
简单记录一下#include <iostream>#include <list>int main(int argc,char* argv[]){ int arr[]={12,34,23,54,56,32,56}; std::list<int> mylist(arr,arr+7); std::list<int> mylistCopy; std::list<int> ::iterator it; f原创 2020-10-15 16:29:54 · 2888 阅读 · 0 评论