- 博客(48)
- 收藏
- 关注
原创 VGG学习
VGG优缺点VGG优点VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。 几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好: 验证了通过不断加深网络结构可以提升性能。VGG缺点VGG耗费更多计算资源,并且使用了更多的参数(这里不是3x3卷积的锅),导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。VGG可是有3个全连接层啊!PS:有的文章称:发现这些全连接层即使被去除,对于性能也没.
2020-09-03 11:23:56
696
原创 大津法加速
int Otsu2_accel(cv::Mat _src, int _width, int _height){ int pixelCount[256] = { 0 }; float pixelPro[256] = { 0 }; // 统计灰度级中每个像素在整幅图像中的个数 for (int y = 0; y < _height; y++) { int offset = y...
2019-09-26 14:56:53
372
原创 ORB、SIFT、SURF、手动配准VS程序以及配准后图像融合方法
#include<opencv2\highgui\highgui.hpp>#include "opencv2/nonfree/nonfree.hpp" #include "opencv2/legacy/legacy.hpp" #include <iostream> using namespace cv;using namespace std;#...
2019-06-12 19:20:24
1287
转载 Ubuntu16.0编译opencv3.4.2
cmake时候关闭ippic加速 cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_IPP=OFF安装opencv3.4.0:https://blog.youkuaiyun.com/cocoaqin/article/details/78163171安装eclipse:https://www.cn...
2019-06-12 17:22:14
277
转载 C++类模板的使用以及内联函数的作用(转载)
直接上链接地址:内联函数和普通函数讲解---http://m.elecfans.com/article/604032.html 类模板的使用https://www.cnblogs.com/cxq0017/p/6076856.html...
2019-06-12 15:03:27
823
转载 LBP详解
https://www.cnblogs.com/nsnow/p/4461998.htmlhttps://blog.youkuaiyun.com/Hk_john/article/details/78422032https://blog.youkuaiyun.com/Hk_john/article/details/78422032https://blog.youkuaiyun.com/xiaojiajia007/articl...
2019-04-19 17:05:32
353
转载 向量积和数量积常用知识
注意,数量积是一个数,而不是一个向量。向量积是一个向量,此向量垂直于相乘的两个向量。处于与z轴方向平行。如果 res<0,说明结果向量垂直于屏幕向里,也就是指向Z轴的负方向,P点在直线的下侧。如果res>0,说明结果向量垂直于屏幕向外,也就是指向Z轴的正方向,P点在直线的上侧。如果res=0,P点在直线上。参考:https://blog.csd...
2019-04-11 19:49:30
2654
转载 (转载)计算二值图像连通域
推荐几个不错的连接https://blog.youkuaiyun.com/mei_zs/article/details/83385909https://www.cnblogs.com/fireae/p/3723785.htmlhttps://www.cnblogs.com/ryuasuka/p/4932239.htmlhttp://blog.sina.com.cn/s/blog_659f58370...
2019-04-11 09:48:04
921
原创 基于C语言的最大值滤波
void MaxFilter(unsigned int *src, unsigned int *dst, int width, int height){ assert(src != NULL); assert(dst != NULL); assert(width >= 0); assert(height >= 0); memset(expandDwtImageBuff,...
2019-04-10 17:23:11
374
原创 一种基于C语言的聚类算法实现
int Cluster(int distance){ assert(distance > 0);//targetPtNum 是所有目标点的个数 if (targetPtNum <= 0) return targetPtNum; // 定义1为点存在,0为点不存在 memset(targetPtExistFlag, TRUE, targetPtNum * sizeof...
2019-04-10 17:21:58
509
原创 C语言计算图像的积分图
void CountIntegral(unsigned int *src, unsigned int *dst, int width, int height){ assert(src != NULL); assert(dst != NULL); assert(width >= 0); assert(height >= 0); dst[0] = src[0]; for ...
2019-04-02 09:20:55
582
原创 C语言实现图像锐化
void SharpenInt(unsigned int *_src, unsigned int *_dst, int _width, int _height){ int *Ix = tmpBuff; int *Iy = tmpBuff + _width * _height * sizeof(int); // 求梯度 for (int y = 0; y < _height; ...
2019-04-01 19:27:29
2348
2
原创 C语言实现小波变换
void DWT(char *src,char *dst,int height,int width){ for (int y = 0; y < height - 1; y += 2) { for (int x = 0; x < width - 1; x += 2) { int s1 = src[y * width + x]; int s2 = ...
2019-04-01 19:26:42
6980
原创 字符串分割函数strtok备忘笔记
当我们需要从一串IP地址或者车牌号中识别出来自己需要的数字要怎么做呢?可以使用string.h中的strtok字符串分割函数。char* strtok (char* str,const char* delimiters );//该函数调用一次,返回第一个被分割的字符串首地址,所以若想分割全部的字符串,需要多次调用,直到str到 //达末尾//参数解释://st...
2019-03-15 09:33:37
148
原创 C语言中的__FUNCTION__,_FILE_和_LINE_用法
C/C++提供了三个宏__FUNCTION__,_FILE_和_LINE_定位程序运行时的错误。程序预编译时预编译器将用所在的函数名,文件名和行号替换。当运行时错误产生后这三个宏分别能返回错误所在的函数,所在的文件名和所在的行号。不多说,直接上代码和运行结果1//文件名字叫test.cpp,位于D:\test\下 #include <stdio.h>2 3 int ma...
2019-03-14 20:43:46
19248
原创 linux中进程内部消息队列通信代码以及说明
#include <stdio.h> //使用pthread头文件进行创建线程,和sem_wait等相关操作,//注意编译时加上-lpthread选项,以调用静态链接库。因为pthread并非Linux系统的默认库。#include <pthread.h>#include <semaphore.h> #include <unistd.h&g...
2019-03-08 12:04:00
231
原创 void*指针的使用和问题说明
今天在移植和优化算法程序时遇到一个问题,这个问题可能老手工程师会经常见,我却在这里犯迷糊了,话不多说先上代码看看问题是啥 typedef void *GDALDatasetH; GDALDatasetH baseImgDS = GDALOpenShared(baseImgPath,GA_ReadOnly); GDALDatasetH regImgDS...
2019-03-08 11:57:03
314
1
原创 opencv(8)感兴趣区域
/*ROI从英文全称上就可以理解是什么Region of interest就是感兴趣区域的意思啦*/#include<opencv.hpp>#include<highgui.hpp>using namespace std;using namespace cv;void main(){ //获取感兴趣区域有两种方式,一种是指定感兴趣区域的x,y坐标和长...
2019-03-06 10:33:26
297
原创 opencv(7)自适应阈值化函数的使用和图像的炬的概念
#include<opencv.hpp>#include<highgui.hpp>#include<imgproc.hpp>using namespace std;using namespace cv;/*OpenCV中提供了自适应阈值化函数adaptiveThreshold(),该函数有两种自适应阈值化类型参数可供选择,用来对当前像素点与领域像...
2019-03-06 10:03:30
221
原创 opencv--之霍夫变换(求图像中的直线)
按照我的理解,霍夫变换就是一种边缘检测,检测出来直线或者圆/*霍夫线变换是一种在图像中寻找直线的方法。OpenCV中支持三种霍夫线变换,分别是标准霍夫线变换、多尺度霍夫线变换、累计概率霍夫线变换。在OpenCV中可以调用函数HoughLines来调用标准霍夫线变换和多尺度霍夫线变换。HoughLinesP函数用于调用累积概率霍夫线变换。我们都知道,二维坐标轴上表示一条直线的方程式y...
2019-03-05 16:30:58
532
原创 opencv-5 边缘检测Canny和sober
#include<opencv.hpp>#include<highgui.hpp>using namespace std;using namespace cv;/*在边缘检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 。与Prewitt算子相比,Sobel算子对于像素的位置的影响做了加权,...
2019-03-05 15:45:03
704
原创 opencv---(4)卷积的理解和图像金字塔
/* 1:进行图像缩放的最精准和高效的方法就是用resize自带函数,通过 手动输入缩放以后图像的长宽或者缩放的比例即可。 2:图像金字塔说白了就是用来缩放图像的,但是其缩放效果不如resize 而且模糊程度较高。图像金字塔是在学习卷积神经网络时会经常遇到 这个名词,需要好好理解一下. 3:两种类型的金字塔: 高斯金字塔:用于下采样,主要的图像金字塔; 拉普拉斯金字塔:...
2019-03-05 14:58:01
400
原创 opencv学习--(3)滤波总结
/*最大值滤波可以去除图像中的暗斑,同时也会使亮斑增大;最小值滤波可以去除图像中的亮斑,同时也会增大暗斑滤波处理分为两大类:线性滤波和非线性滤波。OpenCV里有这些滤波的函数,使用起来非常方便,现在简单介绍其使用方法。线性滤波:方框滤波、均值滤波、高斯滤波 均值滤波:均值滤波就是方框滤波的一个特殊情况。 均值滤波的缺点就是不能很好地保护细节,在图像去燥的同时也破坏...
2019-03-05 11:50:46
395
原创 opencv学习(2)图像处理的基本基础知识
首先感谢博客园的Madcola博主,他给了我很多启发,也让我深受鼓舞,我的opencv系列博客都是受他启发而写。大家感兴趣的可以也去关注一下这位博主#include<iostream>#include<opencv.hpp>#include<highgui.hpp>using namespace std;using namespace cv;...
2019-03-05 11:20:07
289
原创 opencv 学习(1)VS2015永久性地配置opencv3.4
首先感谢博客园的Madcola博主,他给了我很多启发,也让我深受鼓舞,我的opencv系列博客都是受他启发而写。大家感兴趣的可以也去关注一下这位博主一直在做图像处理地工作,包括opencv,但是从来没有记录过,今天决定以后开始一点一点把opencv的学习之路记录下来。首先,我这里提供一个已经编译好的opencv3.4地百度云链接,直接下载直接就可以开始配置了,干脆利落。链接:https...
2019-03-05 09:26:31
377
原创 C语言如何判断两个区间是否有交叉
比如两个x轴方向的区间段,C语言如何快速判断两个区间段是否有交叉呢?请看下面代码bool IsCross( RECT *rect1, RECT *rect2 ){ RECT rcTmp; rcTmp.left = _max( rect1->left, rect2->left ); //rcTmp.top = _max( rect1->top, rect2-...
2019-02-28 15:28:11
2167
原创 关于字节对齐问题
今天在进行嵌入式移植某个算法时,移植之前,我按照惯例,先把程序在VS上修改成适合嵌入式linux的版本,我先在VS把linux中没有的头文件windows.h去掉以后,手动实现了一个程序里面需要用到的某个结构体BITMAPFILEHEADER,然后运行,程序竟然在loadImage(自己的API)的时候竟然就开始出错,src_img竟然是一个非常大的数,我经过断电排查,发现了一个bug,,,是有关...
2019-02-25 21:36:56
270
原创 C++中有关Stream流处理的相关总结
一直以来都很排斥使用stream流来解决问题,直到有一天突然使用了一下,发现真的超级简单。不多BB。比如,我需要解析一串XMl节点路径"/a/b/c/d",现在我肯定首先要解析出每一个结点的名字,就是分别把a,b,c,d存在vector中或者数组中,不用流你会怎么做?还是比较费功夫的,如果使用流的话,请看下面的代码。vector<string> XmlInterface:...
2019-02-22 16:07:12
447
原创 opencv中画直方图的函数总结
画直方图的主要步骤:直方图的创建→计算图像的直方图→画出直方图IplImage *DrawHistogram(CvHistogram*hist, float scaleX = 1, float scaleY = 1){ float hisMax = 0; cvGetMinMaxHistValue(hist,0,&hisMax,0,0); IplImage *imgHist =...
2019-02-22 11:03:48
803
原创 CMOS相机和CCD相机的区别
一直不太清楚CMOS相机和CCD相机的区别,今天感冒了,但是还是想更一片博客,记录一下。一: CCD指“电荷耦合器件”,是将光信号转换为电信号的一种图像传感器。 CCD根据结构不同 ,可分为线阵CCD,面阵CCD。面阵CCD又分为全帧型,帧转移型,行间转移型,TDI型。 CMOS指“互补金属氧化物半导体”,也是一种图像传感器。二: ...
2019-02-14 17:42:53
10027
原创 如何通过在函数外部的指针传递到函数内部并且修改其内容
当你在函数外部需要声明一个指针,然后将指针作为参数传递给接下来调用的函数时,需要注意亮点1:声明的指针分配了内存2:声明的是空指针,未分配内存针对于1情况,用一下方式可以直接实现void jack(char* ptr){ char* p = "abcdefg"; strcpy(ptr,p); return;}int main(){ char* p = NULL;...
2019-02-14 14:51:40
2025
转载 栈和堆的区别
说起会了解这个东西,还是比较尴尬的,在学校里面老师一般不会讲解C++的堆和栈,大多数人了解的堆和栈是数据结构里面的概念,而这里一般面试官想问的是C++的内存分区管理方式。首先说明,在C++中,内存分为5个区:堆、占、自由存储区、全局/静态存储区、常量存储区栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。堆:是由new分配的内存块,由程序员释放(编...
2019-01-18 09:56:14
116
原创 Static、局部变量、全局变量、栈、堆、内存中代码的存储形式的总结
C/C++代码在内存中一直由这部分组成:1)正文段(代码段)——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。(这就是为什么全局内置类型变量会初始化,而局部变量就为未初始化的未知值)4)...
2019-01-18 09:42:59
613
原创 inline内联和宏的区别
总结一句话就是:宏必须是参数替换,不能按值传递。讲一下下面的例子大家就懂了#define SQUARE(X) X*X//这并不是通过传递参数实现的,而是通过文本替换来实现的--X是参数的符号标记a = SQUARE(5.0);//is replaced by b = 4.5+7.5*4.5+7.5;d = SQUARE(5.0);//is replaced by d = c++*c+...
2019-01-16 19:29:04
158
原创 C++的static_cast等转换
static_cast: 在功能上基本上与C风格的类型转换一样强大,含义也一样。它也有功能上限制。例如,你不能用static_cast象用C风格的类型转换一样把struct转换成int类型或者把double类型转换成指针类型,另外,static_cast不能从表达式中去除const属性,因为另一个新的类型转换操作符const_cast有这样的功能。const_cast: 用于类型转换掉表达式的c...
2019-01-15 10:54:15
1268
原创 const的通俗理解
尽可能的使用const来保护数据//-------------1-----------int age = 39;const int *pt = &age;int sage = 80;pt = &sage;//this is OK C++ primer P223//------------2---------------int sloth = 3;cons...
2019-01-15 10:13:42
136
原创 指针与C++基本原理
面向对象编程与传统的过程性编程的区别在于,OOP强调是在运行阶段(而不是在编译阶段)进行决策。运行阶段指的是程序在运行时,编译阶段指的是在编译器将程序结合起来时。运行阶段决策就好像是度假,选择参观的景点取决于天气和当时的心情;而编译阶段决策更像不管在什么条件下,都坚持预先设定的日程安排。...
2019-01-15 09:45:54
121
转载 目标检测和YOLOV3网络的学习
分享一个非优快云的讲解YOLO系列网络的网站:https://www.cnblogs.com/makefile/p/YOLOv3.html
2019-01-15 09:26:30
237
转载 高斯分布在图像处理中的应用以及高斯模糊的原理
链接地址:https://www.cnblogs.com/herenzhiming/articles/5276106.html
2019-01-14 16:28:56
995
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人