C++
Ring__Rain
这个作者很懒,什么都没留下…
展开
-
读取多行txt
读取txt中的内容原创 2023-03-08 17:32:49 · 211 阅读 · 0 评论 -
mnist数据转Img
mnist数据集转原创 2022-09-25 09:35:58 · 312 阅读 · 0 评论 -
#include <windows> 和 opencv冲突
因为opencv中有用到一些windows的东西,在先引用opencv,再#include 的时候,会有冲突。解决方法:在最开始引用#include原创 2022-09-20 10:19:52 · 793 阅读 · 1 评论 -
手撸模板匹配-C++版本
模板匹配手撸原创 2022-06-30 14:33:42 · 492 阅读 · 0 评论 -
python调用C++封装好的dll接口
C++ codeextern "C" __declspec(dllexport) int testFunction(int a, int b);int testFunction(int a, int b){ return a + b;}python codeimport ctypesimport timeimport numpy as npimport osdllName = "./QFN_Test.dll"dll = ctypes.WinDLL(dllName)原创 2022-02-10 16:50:05 · 991 阅读 · 0 评论 -
水平集LevelSet 分割图像
1、水平集的是一个很好的分割算法,其使用比较多的是医学图像领域。其有一些有点也有一些缺点其会计算图片的前景灰度、背景灰度。前景是灰度值大的目标,如果前景目标太小,则会导致其分割的不准确。其算法原理跟大津算法类似。其分割可以补偿一点缺失的边缘,这个特性很适合医学图像领域,因为医学图像很多噪点,边缘不明确的现象,还有一个优点是分割速度快。下面是一些例子:分割成功并补偿了缺失边缘的:分割失败:灯光条太小,其分割成的是整张图下面是水平集的原代码:levelset.hpp#i原创 2021-02-26 18:16:34 · 2002 阅读 · 1 评论 -
cmake3.17.2+vs2015+opencv4.3编译
1.为什么要装opencv contribopencv只包含基本内容,如果需要用到surf特征提取等内容因为版权问题必须安装opencv_contrib2.安装需要的文件获取vs2015:https://visualstudio.microsoft.com/zh-hans/downloads/opencv:https://opencv.org/releases.html 我用的是opencv3.4.3版本,你可以选择自己喜欢的版本,但是要注意后期下载opencv_cont...原创 2020-05-22 17:30:01 · 327 阅读 · 0 评论 -
opencv4.0.1 qr二维码定位识别源码详解
参考:https://blog.csdn.net/weixin_40976602/article/details/88839426?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.non原创 2020-05-21 20:57:13 · 1483 阅读 · 0 评论 -
opencv 图像旋转与缩放 与翻转/镜像
// 图像旋转与缩放 // Author: www.icvpr.com // Blog: http://blog.csdn.net/icvpr #include <iostream>#include <vector>#include <opencv2/opencv.hpp> int main(int argc, char** arg...原创 2020-03-30 17:09:27 · 317 阅读 · 0 评论 -
C++ map的使用
C++ map的基本操作和使用 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; map<string , int >mapstring;map<int ,string >mapint;map<sri...原创 2020-03-25 09:47:23 · 205 阅读 · 0 评论 -
高度纹理图像中的mura缺陷——holcon
对应示例程序:detect_mura_defects_texture.hdev目标:实现高纹理图像中缺陷的检测(黑色)。思路为:1.对彩色图像进行R G B分解,选取B作为后续图像。2. 生成背景模板,将图像傅里叶变换到频域中,通过高斯滤波,然后傅里叶反变换回来,得到的图像就是背景模板。3 .背景差分。采用sub_image函数进行图像差分,增强两幅图像的差异4 .分水岭算法分割,在...原创 2020-03-02 14:28:41 · 1312 阅读 · 0 评论 -
检测-基于频域的mura缺陷检测
dev_close_window ()dev_update_off ()Path := 'lcd/mura_defects_texture_'read_image (Image, Path + '01')get_image_size (Image, Width, Height)dev_open_window (0, 0, 640, 480, 'black', WindowHandle)...原创 2020-03-02 12:12:40 · 2557 阅读 · 1 评论 -
LBP特征(1)原始LBP特征
参考:https://blog.csdn.net/quincuntial/article/details/50541815一、LBP特征的背景介绍LBP指局部二值模式,英文全称:Local Binary Pattern,是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。它是由T. Ojala, M.Pietikäinen, 和 D. Harwood [1][...原创 2019-05-29 13:51:40 · 304 阅读 · 0 评论 -
使用c++ opencv调用tensorflow训练好的卷积神经网络
在OpenCV3.3版本发布中把DNN模块从扩展模块移到了OpenCV正式发布模块中,DNN模块最早来自Tiny-dnn,可以加载预先训练好的Caffe模型数据,后来OpenCV近一步扩展支持主流的深度学习框架模型数据的加载,常见的有如下:Caffe,TensorFlow,Torch/PyTorch 。OpenCV中DNN模块已经支持了下面这些经典的神经网络模块:AlexNetGoogLeN...原创 2019-06-21 16:04:03 · 1113 阅读 · 0 评论 -
OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
1. 基于直方图均衡化的图像增强直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。彩色图像的直方图均衡化实现: Mat image = imread("lena.jpg", 1); if (image.empty()) { std::cout ...原创 2019-06-25 10:28:34 · 447 阅读 · 0 评论 -
vs的一些高逼格快捷键
VS常用来提高逼格的快捷键:1 代码自动对齐ctrl + k + f2 调用智能提示ctrl +j 或 ctrl+->3快速隐藏或显示当前代码段ctrl + m + m4 注释ctrl + k + c5 取消注释ctrl + k + u...原创 2019-06-19 16:59:58 · 168 阅读 · 0 评论 -
面试题--输出两个字符数组中相同的字符
#include<iostream>using namespace std;void FindCommonChar(char a[], int lena, char b[], int lenb){ int hasha[256] = {0}; int hashb[256] = {0}; for (int i = 0; i < lena; i++)...原创 2019-06-19 16:38:55 · 956 阅读 · 0 评论 -
LBP特征(6)LBPH
LBPH——图像的LBP特征向量LBPH,Local Binary Patterns Histograms,即LBP特征的统计直方图,LBPH将LBP特征与图像的空间信息结合在一起。这种表示方法由Ahonen等人在论文【Ahonen, T., Hadid, A., and Pietikainen, M. Face Recognition with Local Binary Patterns. ...原创 2019-05-29 17:07:28 · 1302 阅读 · 0 评论 -
LBP特征(5)MB-LBP、SEMB-LBP特征
一、MB-LBP特征全称为Multiscale Block LBP,来源于论文,中科院的人发明的,在Traincascade级联目标训练检测中的LBP特征使用的就是MB-LBP。MB-LBP的原理:将图像分成一个个小块(Block),每个小块再分为一个个的小区域(类似于HOG中的cell),小区域内的灰度平均值作为当前小区域的灰度值,与周围小区域灰度进行比较形成LBP特征,生成的特...原创 2019-05-29 14:36:34 · 1811 阅读 · 0 评论 -
LBP特征(4)Uniform Pattern LBP特征
参考:https://blog.csdn.net/quincuntial/article/details/50541815Uniform Pattern LBP特征Uniform Pattern,也被称为等价模式或均匀模式,由于一个LBP特征有多种不同的二进制形式,对于半径为R的圆形区域内含有P个采样点的LBP算子将会产生2^P种模式。很显然,随着邻域集内采样点数的增加,二进制模式的种类是...原创 2019-05-29 14:05:37 · 803 阅读 · 0 评论 -
LBP特征(3)旋转LBP特征
参考:https://blog.csdn.net/quincuntial/article/details/50541815旋转不变LBP特征从(1)和(2)可以看出,上面的LBP特征具有灰度不变性,但还不具备旋转不变性,因此研究人员又在上面的基础上进行了扩展,提出了具有旋转不变性的LBP特征。首先不断的旋转圆形邻域内的LBP特征,根据选择得到一系列的LBP特征值,从这些L...原创 2019-05-29 13:57:14 · 811 阅读 · 0 评论 -
LBP特征(2)圆形LBP特征
参考:https://blog.csdn.net/quincuntial/article/details/50541815圆形LBP特征(Circular LBP or Extended LBP)由于原始LBP特征使用的是固定邻域内的灰度值,因此当图像的尺度发生变化时,LBP特征的编码将会发生错误,LBP特征将不能正确的反映像素点周围的纹理信息,因此研究人员对其进行了改进[3]。...原创 2019-05-29 13:55:40 · 1108 阅读 · 0 评论 -
算法-寻找第K大的数的方法总结
转载:http://www.cnblogs.com/zhjp11/archive/2010/02/26/1674227.html解法3:void findKthBigger(vector<int> &a, int K, int m, int n){ int i = m, j = n; int base = a[i]; while (i<j) { ...原创 2019-06-25 15:07:00 · 7435 阅读 · 0 评论 -
extern/static
extern的主要作用:是在另一个文件中定义的有一个变量或函数u,该文件中要用,可以改变该变量的值。static的主要作用:多个对象改变一个值,互相作用,要加都加。#include <iostream>using namespace std;extern int a; //在另一个文件中定义,该Cpp不一定要包含那个文...原创 2019-07-02 09:45:23 · 188 阅读 · 0 评论 -
随机数与随机种子测试
对随机数的使用较少,因此没有深入了解过其产生原理。这里涉及到两个函数,rand()和srand(),前者是生成一个伪随机数,后者是生成一个随机种子。一、rand() rand()可以生成一个0~RAND_MAX之间的一个随机数,返回值是一个unsigned int类型值。如下代码:#include <iostream>#includ...原创 2019-06-24 10:41:37 · 650 阅读 · 0 评论 -
在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
在VS2015中先创建C#项目,然后再创建要编写的动态库DLL项目,这样做的好处是整个解决方案的编程环境是C#模式,这样就可以有很多智能的提示或快捷的编程方式在整个解决方案中都可以使用。一:创建C#控制台应用程序:用于调用C++编写的DLL(1)启动VS2015》文件》新建》项目,在弹出的新建项目对话框中按下图进行选择填写,先填写项目的名称,再修改解决方案的名称。(2)项目创建后...原创 2018-09-19 13:25:02 · 505 阅读 · 0 评论 -
向量之间的相似度和距离计算
/*特征向量相似度和距离的计算相似度:·夹角余弦·相关系数·Dice·Jaccard距离·明氏距离·欧氏距离·马氏距离·Jffreys & Matusita 距离·Mahalanobis 距离,未实现,协方差矩阵·Camberra 距离(Lance 距离,Williams 距离)*/ #include <iostream>#include &...原创 2019-09-10 22:01:41 · 1214 阅读 · 0 评论 -
opencv读取文件夹下所有文件
如题。一、获取完整路径#include <opencv2\opencv.hpp>#include <string> int main(int argc, char* argv[]) { std::string folder_path = "D:\\database\\test\\*.*"; //path of folder, you can re...原创 2019-09-10 21:59:54 · 1855 阅读 · 5 评论 -
CString,string,char*之间的转换
这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差。string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。以下我用简单的图示指出三者之间的关系,并以标号对应转换的方法。1 stri...原创 2019-07-12 13:38:45 · 106 阅读 · 0 评论 -
Eigen: C++开源矩阵计算工具——Eigen的简单用法
转自:https://blog.csdn.net/augusdi/article/details/12907341Eigen非常方便矩阵操作,当然它的功能不止如此,由于本人只用到了它的矩阵相关操作,所以这里只给出了它的一些矩阵相关的简单用法,以方便快速入门。矩阵操作在算法研究过程中,非常重要,例如在图像处理中二维高斯拟合求取光斑中心时使用Eigen提供的矩阵算法,差不多十来行代码即可实现,具体...原创 2019-07-16 09:42:01 · 252 阅读 · 0 评论 -
OpenCV 获取摄像头并显示摄像头视频
OpenCV 获取摄像头,新建窗口显示摄像头视频结合Leaning OpenCV 第二个例子 显示一个视屏文件 写了一下 获取摄像头的代码为并且创建窗口显示的代码为:#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highgui.h> int main( int...原创 2019-07-16 09:25:26 · 531 阅读 · 0 评论 -
opencv 特征点匹配:ORB
特征点匹配的流程:ORB:Oriented FAST and Rotated BRIEORB特征是将FAST特征点的检测方法与BRIEF特征描述子结合起来,并在它们原来的基础上做了改进与优化:使用非最大值抑制,在一定区域内仅仅保留响应极大值的角点,避免FAST提取到的角点过于集中。FAST提取到的角点数量过多且不是很稳定,ORB中可以指定需要提取到的角点的数量N,然后对FAS...原创 2019-07-04 16:52:49 · 1451 阅读 · 0 评论 -
ORB算法原理解读
本文为原创文章,转载请注明出处:http://blog.csdn.net/yang843061497/article/details/38553765绪论假如我有2张美女图片,我想确认这2张图片中美女是否是同一个人。这太简单了,以我专研岛国动作片锤炼出来的火眼金睛只需轻轻扫过2张图片就可以得出结论。但是,如果我想让计算机来完成这个功能就困难重重了:再性感的美女在计算机眼中也只是0-1...原创 2019-07-04 16:49:15 · 731 阅读 · 0 评论 -
opencv——kmeans
opencv中的kmeans是基于颜色信息来分类的。void asgdjh(Mat &src){ Scalar colorTab[] = { Scalar(0, 0, 255), Scalar(0, 255, 0), Scalar(255, 0, 0), Scalar(0, 255, 255), Scalar(255, 0, 255) }; int w...原创 2019-07-04 15:16:13 · 130 阅读 · 0 评论 -
C++ 命名规范
1. 类、函数、枚举如,LikeThis,即单词首字母大写;2. 变量如,likeThis, 即第一个单词首字母小写,第二个单词首字母大写;3. 私有成员变量如,likeThis_,即以_结尾;4. 宏如, LIKE_THIS, 即单词均大写,且以_分割;---------------------作者:JoannaJuanCV来源:CSDN原文:...原创 2019-07-03 10:54:32 · 122 阅读 · 0 评论 -
傅里叶变换【1】:傅里叶变换及逆变换
//快速傅里叶变换void fft2Image(InputArray _src, OutputArray _dst){ //得到Mat类型 Mat src = _src.getMat(); //判断位深 CV_Assert(src.type() == CV_32FC1 || src.type() == CV_64FC1); CV_Assert(src.channels() == 1...原创 2019-06-12 17:06:10 · 17053 阅读 · 0 评论 -
RGB色转灰度色算法
原文:http://www.cnblogs.com/carekee/articles/3629964.html一、基础 对于彩色转灰度,有一个很著名的心理学公式: Gray = R*0.299 + G*0.587 + B*0.114二、整数算法 而实际应用时,希望避免低速的浮点运算,所以需要整数算法。 注意到系数都是3位...原创 2019-05-31 10:50:26 · 436 阅读 · 0 评论 -
OpenCV中神经网络介绍与使用
OpenCV中神经网络介绍与使用一:神经网络介绍人工神经网络(ANN) 简称神经网络(NN),最早它的产生跟并行计算有关系,主要是学习生物神经元互联触发实现学习、完成对输入数据的分类与识别。最基本的单元是神经元,有一个输入值,一个输出值,神经元本身根据激活函数来说决定输出值,最简单例子就是感知器上述在开始的时候通过随机初始化生成权重,然后通过对数据X的训练迭代更新权重直到收敛,过程...原创 2019-02-13 15:26:10 · 4038 阅读 · 0 评论 -
C++回调函数的基本理解和使用
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 https://baike.baidu.com/item/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0...原创 2019-02-22 09:15:25 · 225 阅读 · 0 评论 -
调用C++的dll实现函数回调
1、外部定义回调函数//C#定义的回调函数, void callBackFunc(EnumLogContentType Info, char* Title, char* Message, int TitleSize, int MessageSize){ string temp1 = Title; string temp2 = Message; cout << "Info...原创 2019-02-21 16:56:10 · 1880 阅读 · 0 评论