自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stone_石头

静以修身

  • 博客(122)
  • 资源 (14)
  • 论坛 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 学习Qt:构建套件Kits出现黄色叹号的处理办法

https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/

2020-11-18 18:22:09 68

原创 学习OpenCV:使用buildPyramid金字塔时的亚像素问题

在实现灰度匹配的过程中,从同一张目标图下截取部分作为模板,无法得到一个得分率约等于1的得分。这里采用了buildPyramid分别得到模板图与目标图的金字塔图,如下图所示,同一位置像素值相差较大。 ...

2020-11-17 16:41:05 6

原创 学习Python:装饰器

应用场景:已经有一些现存稳定运行的函数,现在你需要加调试信息、运行时间或其他调试参数,这时不能去动已经稳定的函数,可以将函数名作为参数传到一个装饰器中,在该运行函数前后添加所需的代码。import timedef timer(func): def wrapper(*args, **kw): start = time.time() func() end = time.time() used = end - start .

2020-11-06 16:50:32 57 1

原创 学习Qt:VS中提升控件

提升即继承某个控件新建一个新的控件,用于扩展控件功能。这里通过提升QListWidget,实现一个在list项中鼠标右键弹出上下文弹框的功能。1、添加一个QtClass,选择你要继承的控件,这里继承QListWidget,命名为SListWidget ;2、在SListWidget中添加扩展功能;#pragma once#include <qlistwidget.h>#include <QMenu>#include <QAction>#inc

2020-10-26 22:52:09 25

原创 小波变换知识点记录

https://zhuanlan.zhihu.com/p/22450818

2020-10-20 17:08:47 11

原创 学习OpenCV:频域及傅里叶变换

关键公式,《数字图像处理》第三版,P147:1、频谱图具有周期性,归一化为图像大小;2、频谱图具有对称性,以复数形式表示图像二维,幅值为实部与虚部平方和;https://www.zhihu.com/question/67234546/answer/403292397示例一:参考HDevelop中的remove_texture_fft.hdev,采用OpenCV实现去除图像中固定纹理;这里只是演示,只去除了部分纹理频率,没有完全去除干净,效果肯定没有HDevelop中的好:Mat C

2020-10-19 17:31:13 51

原创 学习OpenCV:hu矩

hu矩为描述整体图像特征的一种方法,零阶矩表示它的总质量;一阶矩表示它的质心;二阶矩又叫惯性矩,表示图像的大小和方向。通过计算普通矩可以知道图像的重心坐标、形状方向等; Mat imgSrc = imread("lena.jpg", IMREAD_GRAYSCALE); threshold(imgSrc, imgSrc, 50, 255, THRESH_BINARY); Moments mom = moments(imgSrc, false);// Calculate Moments dou

2020-09-27 23:52:45 599

原创 关于KNN的一些思考

可以使用KNN分类的场景,每个类别由相同的若干的元素构成,如:求手机颜色分类。手机颜色中的黑、白、金等,分别由RGB三个元素值组成。1、整理出所有现有手机的颜色及其对应的三个元素值,即测试集;2、求三个目标元素值与上述所有元素值(测试集)的距离(L1或者L2);3、结果个数为测试集个数,每个距离值对应分类结果,格式类似,黑:22,黑:20,黑:18,白:55,白:58,金:108(测试集个数一般远远大于此);4、对上述距离值继续从小到大的排序;5、取前K个距离值,原则上测试集越多

2020-09-27 21:12:05 29

原创 学习OpenCV:海森矩阵(Hessian Matrix)

https://blog.csdn.net/u013921430/article/details/79770458https://www.cnblogs.com/jsxyhelu/p/12114981.html疑问与说明:1、得到特征值后怎么根据特征值判断为线性结构、角点结构?2、sigma跟模板大小怎么确定?3、描述子实际上为二维矩阵上的特征向量与特征值;...

2020-09-27 17:57:59 41

转载 学习OpenCV:骨架提取

https://blog.csdn.net/FunnyWhiteCat/article/details/80670332

2020-09-26 12:19:25 113

原创 C++把函数名作为变量传递

using MyFuncType = string(*)(string, string);string add0(string a, string b){ return a + b;}string add1(string a, string b){ return a + b + a;}int main(){ MyFuncType fun = add0; string strOut = fun("aa","bb");}

2020-09-24 18:41:53 35

原创 学习MIPP

1、 VS中启用指令集;这里我用的VS2019启用AVX512时会编译失败。2、这里采用的指令集是AVX2,一个寄存器有256位,每个寄存器的元素数量根据保存的数据类型决定,比如mipp::N<float>等于8,float为32位,则寄存器mipp::Reg<float>可以存8个float数据;mipp::N<double>等于4,double为64位,寄存器mipp::Reg<double>只能存4个double数据。因为调试时只能看到m25

2020-09-10 19:50:51 53

原创 学习Dlib:serialize与deserialize

#include <iostream>#include <fstream>#include <map>#include <dlib/serialize.h>int main(){ std::vector<std::string> dict0{"11","22","33"}; std::vector<std::string> dict1{"00","55","66"}; std::map<st.

2020-09-08 23:23:54 45

原创 学习OpenCV:minAreaRect与RotatedRect

minAreaRect:返回指定点集的带方向的最小外接矩形,数据类型为RotatedRect,其中返回的角度θ范围为(-90°,0°]。如果需要将θ限制在(-45°,45°],如:获取到角度-80°时,后面流程我需要的是顺时针旋转10°,如果直接使用是逆时针旋转80°,可参考以下实现,使输出为10°。其中逆时针旋转角度为负,顺时针旋转角度为正。 RotatedRect rect = minAreaRect(conMinArea); float fAngle = rect.angle;//θ∈

2020-09-08 18:00:53 29

原创 学习OpenCV:PCA

Principal Component Analysis,主成分分析。协方差:通过协方差的数值大小,可以判断这两个变量同向或反向的程度;相关系数:协方差除以标准差;https://www.zhihu.com/question/20852004总结一下PCA的算法步骤:设有m条n维数据。1)将原始数据按列组成n行m列矩阵X2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值3)求出协方差矩阵C=1mXXTC=1mXXT4)求出协方差矩阵的特征值及对应的特征向

2020-08-28 17:49:00 85

原创 C++序列化工程文件时的相关知识点

1、文件的写入与读取; ifstream input("test.svl", ios::in | ios::binary); int nLength; string strTemp; input.read((char*)&nLength, sizeof(int)); strTemp.resize(nLength); input.read((char*)&strTemp[0], nLength); std::cout << strTemp; ofstream

2020-08-27 17:28:30 54

原创 github中C++实现的http服务库

cpp-httplib:只有一个头文件,但仅支持单线程;cpp-netlib:依赖boost;CppNet:无法获取Body,无法解析json;Crow:依赖boost,不完全支持windowEvHttpServer:linux下,不支持windowfibio:依赖boost旧版本;httpd:linux下,不支持windowhttp-server:linux下,不支持windowhttpsys:star少,无法使用,不返回数据libevent:linux下,不支持win

2020-08-17 14:05:20 116

转载 c#中用async、awai、Task等实现多线程高并发

http://www.skcircle.com/?id=24

2020-08-05 15:05:16 92

转载 c++的并发操作(多线程)

https://www.cnblogs.com/yskn/p/9355556.html

2020-07-30 19:30:56 56

原创 学习OpenCV:聚类函数partition的使用

vector<Point> vecPointsInput; vecPointsInput.push_back(Point(0, 0)); vecPointsInput.push_back(Point(0, 2)); vecPointsInput.push_back(Point(0, 5)); vecPointsInput.push_back(Point(0, 10)); vecPointsInput.push_back(Point(0, 20)); vecPointsInp...

2020-07-23 12:04:59 89

原创 学习OpenCV:对Canny的理解

CV_EXPORTS_W void Canny( InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize = 3, bool L2gradient = false );threshold1:像素值小于低阈值,则排除为边缘像素,设置时参考同一个区域内(边缘区域内)像素值波动值情况,...

2020-07-22 18:30:32 33

原创 OpenCV实现OTSU算法(大津法)

int GetThresholdOTSU(Mat imgInput){ int hist[256] = { 0 }; double pro_hist[256] = { 0.0 }; int row = imgInput.rows; int col = imgInput.cols; for (int i = 0; i < row; ++i) //统计每个灰度的数量 { for (int j = 0; j < col; ++j) { int temp = imgInpu.

2020-07-20 19:03:29 90

转载 理解pytorch损失函数Softmax、crossentropyloss交叉熵

import torchimport torch.nn as nnx_input=torch.randn(3,3)#随机生成输入print('x_input:\n',x_input)y_target=torch.tensor([1,2,0])#设置输出具体值 print('y_target\n',y_target)#计算输入softmax,此时可以看到每一行加到一起结果都是1softmax_func=nn.Softmax(dim=1)soft_output=softmax_func(x_i.

2020-07-05 19:05:04 238

转载 一个点绕任意点旋转θ度后的点的坐标

假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转a角度后的新的坐标设为(x0, y0),有公式:x0= (x - rx0)*cos(a)- (y - ry0)*sin(a) + rx0 ; y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;一下是对这两条公式的证明。证明方法 参看 https://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html...

2020-06-30 14:32:49 204

原创 学习OpenCV:matchTemplate模板匹配原理分析

自己的一些理解,仅供参考。模板匹配无法就是在目标图中找出与模板图最相似的坐标。通过整体图像的整体灰度值来判断就是灰度匹配;通过图像的边缘信息来判断就是灰度匹配;通过图像的角点等特征点来判断就是特征匹配。模板匹配中,最重要的就是定义两幅图像的相似度,根据相似度的最值即可在目标图中找到对应的坐标。定义两幅图片相似度需要根据图片的实际情况选择,OpenCV这里提供了包含以下方法,MATLAB中还提供了一些其他方法。差值平方和匹配 TM_SQDIFF标准化差值平方和匹配 TM_SQD.

2020-06-24 19:26:54 253

原创 win10安装Pytorch GPU

https://blog.csdn.net/weixin_41762173/article/details/104261249按照这篇文章执行下面指令时一直各种包都下载失败,可尝试重复下载可能可以成功。无法下载成功采用本地离线安装。conda install pytorch torchvision cudatoolkit=10.1下载失败后会提示对应的包的链接,复制该链接到迅雷直接下载,如:https://conda.anaconda.org/pytorch/win-64/pytorch

2020-06-21 12:17:42 155

原创 C++中string的UTF-8格式

string stringUTF8(const string& str){ int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0); wchar_t* pwBuf = new wchar_t[nwLen + 1]; ZeroMemory(pwBuf, nwLen * 2 + 2); ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), p.

2020-06-15 14:13:34 164

原创 Mac安装Python与OpenCV

1、下载python3.x;2、打开终端输入下面指令;sudo pip3 install opencv-python3、如果安装失败,先手动下载opencv-python与Numpy这两个.whl文件到本地;4、打开终端,通过cd,进入到.whl文件的位置,输入下面指令;sudo pip3 install opencv_python-4.2.0.34-cp37-cp37m-macosx_10_9_x86_64.whl...

2020-06-10 19:54:01 108

原创 Anaconda Promp安装库时的常用指令

conda create -n XXX --clone root 创建XXX环境并且复制base的环境conda create -n XXX python=3.8 创建XXX环境,python版本3.8conda info -e 查看现有的环境与当前所属环境conda activate XXX 切换当前运行环境,xxx为环境名称conda deactivate 切换回初始(base)环境conda remove --name xxx --all 删除叫XXX的环境conda config .

2020-06-09 23:36:15 114

原创 学习OpenCV:phaseCorrelate使用

相位相关法(phase correlate)用于检测两幅内容相同的图像之间的相对位移量。可用于对齐图像,不具备光照不变性。 Mat imgTem = imread("22imgTemp.jpg"); Mat imgSrc = imread("22imgTargetAlign.jpg"); cvtColor(imgTem, imgTem, COLOR_RGB2GRAY); cvtColor(imgSrc, imgSrc, COLOR_RGB2GRAY); Mat imgTem64f, imgS.

2020-05-27 18:36:15 234

原创 使用C++解析XML文件

该xml文件为labelImg.exe生成,通过C++获取到该文件中的标签名字与位置,然后保存到容器中供后续方便调用。1、下载库tinyxml;2、将tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp这两个文件拷贝到工程下;3、引入两个头文件,#include "tinystr.h",#include "tinyxml.h";#include <iostream&g...

2020-05-26 15:01:53 102

原创 学习OpenCV:convertScaleAbs函数

vector<float> uvec{ -1000, 0.5, 1000 }; Mat imgSrc{ uvec }; Mat imgDst; convertScaleAbs(imgSrc, imgDst,0.5,10);-1000,0.5,1000转换后的数据是255,10,255。输入图像乘以alpha加beta后取绝对值,如果大于255则等于255。可用于调整对比度与亮度。...

2020-05-20 11:44:25 501

原创 C++中常用函数/语法备忘

1、将字符串以逗号分离后保存到字符串容器vector<string> SplitStr(string strInput){ vector<string> vecStr; for (int i = 0; i < s.size(); ++i) { if (s[i] == ',') { s[i] = ' '; } } istringstream out(s); string str; while (out >> str) { vecS

2020-05-15 11:24:30 74

原创 学习Python:将xml转换为txt/csv

将用labelImg.exe标注后生成的xml文件转换为方便处理的txt/csv,具体信息根据实际情况提取。import osimport csvimport globdef XML2TXT(xmlPath: str): dataList = [] with open(xmlPath, 'r') as fp: for p in fp: if '<filename>' in p: fileName

2020-05-14 17:54:46 234

原创 学习Python:Numpy的线性代数模块(linear algebra)linalg

如解以下方程:x − 2y + z = 0 2y − 8z = 8 −4x + 5y + 9z = −9b = np.mat('1 -2 1;0 2 -8;-4 5 9')value = np.array([0,8,-9])x,y,z = np.linalg.solve(b,value)print(x)print(y)print(z)...

2020-04-14 13:41:13 186

原创 学习OpenCV:imgproc模块分类

imgproc模块中的分类及对应行数,简单整理了一下,有需要的可方便定位查找。枚举定义,0-835GeneralizedHough,837-944,imgproc_hist,945-982:imgproc_subdiv2d,984-1246:imgproc_feature,1248-1328:imgproc_filter,1330-1749:imgproc_fea...

2020-03-06 20:21:44 72

原创 Halcon:序列化与反序列化

read_image (Image, 'fabrik')read_image (Image0, 'letters')open_file ('1.dat', 'output_binary', FileHandle)serialize_image (Image, SerializedItemHandle)serialize_image (Image0, SerializedItemHandl...

2020-03-04 22:37:39 843

原创 Halcon字符识别OCR中trf文件与omc文件

trf为文本与字符的关联;omc为训练后的文件,不能被OCR助手读取;都可以被orc读取函数读取。

2020-03-04 22:36:48 779

原创 Halcon:各模板匹配应用场景对比

1、基于灰度值的模板匹配适用于目标区域灰度值比较稳定,检测图像与模板图像相似度高,且具有相同的外界条件的场景。不适用杂乱场景、遮挡、光照变化、尺寸缩放及多通道图像。在halcon19.11已被移到Legacy中了。2、基于相关性的模板匹配适用于失焦图像、轻微形变、线性光照变化及轮廓模糊的图像,对纹理图像尤为支持。不适用于杂乱场景、遮挡、非线性光照变化、大幅的旋转、尺寸缩放和多通道图像。...

2020-03-03 11:47:45 669

原创 Mark点定位的一般原理与步骤

应用于被测物体幅面巨大,远远超过相机视野时(一般在检测PCB,或者大料盘)。相比于传统的检测方法,可以大大提高检测效率,但是因为考虑到被检物体冷热缩放、刚体形变等原因,会一定程度降低检测精度,实际项目中需要通过添加相关系数补偿。简单记录一下检测步骤:1、硬件准备。相机、二维平台、有特征的被检物体,该物体一般对角会有特征区域,即mark点;2、相机标定。确定像素单元,即像...

2020-03-03 09:51:47 4048 1

pcl_link.txt

包含PCL-1.10.0及pcl-1.9.0。 1、PCL-1.10.0-AllInOne-msvc2019-win64; 2、pcl-1.10.0-pdb-msvc2019-win64; 3、pcl-pcl-1.10.0.tar.gz;等

2020-02-09

C#调用VisionPro源码示例

C#中调用VisionPro工具,显示图片,以CogFindCircleTool为例,找出圆心,bin中包含运行图片。

2019-12-10

ReplaceBackground.rar

通过OpenCV中K-Means方法证件照的背景替换。用MFC做的界面,包含实现源码,需要自己根据实际情况配置OpenCV环境。

2019-11-22

用OpenCV实现证件照的背景替换

通过OpenCV中K-Means方法证件照的背景替换。注意:不能直接运行应用程序的需要在系统中安装.Net环境或者Visual C++2005 RUNTIME LIBRARIES以上版本。

2019-05-08

Halcon+MFC实现相机畸变校正与手眼(九点)标定

提供CCaliAffine.dll与CCaliDistort.dll接口、其使用的Demo及需要使用的图片等,不包含dll源码,可直接使用。另外也有用OpenCV实现的相机畸变校正与手眼(九点)标定相关接口提供, 畸变校正说明:https://blog.csdn.net/Stone_Wang_MZ/article/details/89184313 手眼标定说明:https://blog.csdn.net/Stone_Wang_MZ/article/details/89183692

2019-04-10

OpenCV找出图像中隐藏关键字

http://blog.csdn.net/stone_wang_mz/article/details/79587304

2018-03-18

通过MFC对SQLite进行操作

VS2017下可直接运行,根据物料的长宽计算出面积,然后通过SQLite对数据进行增删改查。

2017-07-24

inno setup打包工具(破解版)

里面包含两个文件夹,安装“isetup-5.4.2-unicode”里面的应用程序,成功安装后找到安装路径,将“INNO SETUP覆盖”中的文件覆盖到安装路径。

2017-07-17

MFC中软件开启等待界面的实现方法

MFC中软件开启等待界面的实现方法

2017-07-14

通过MFC实现数码管显示数字

通过MFC实现数码管显示数字

2017-07-12

matlab车牌识别

(可以直接运行)调取图片、灰度处理图片,减少计算量、用robrets算子进行边缘检测、图像腐蚀、平滑图像、删除二值图像的小对象、车牌定位、方向车牌区域确定。。。

2017-05-08

BGR图像对称映射显示

用opencv将图像对称显示,例如将b变成d

2017-03-16

热水器自动控制

本设计采用STC89C51作为控制核心,采用DS18B20实时采集水温,通过LCD1602进行实时显示信息,能够通过按键或红外遥控进行设置温度的范围,当实测温度低于下限时候控制继电器吸合进行似的加热器工作给水进行加热,当高于上限的时候继电器断开加热器停止工作,并且蜂鸣器鸣叫提示,设置的限值会自动存储于单片机EEPROM中具体掉电存储的能力,系统还可以定时,在定时期间系统关闭加热,并且温度低于下限也不会进行控制。

2017-03-07

Qt-VS2015下载安装配置使用教程

因为Visual Studio 在中国区太盛行了,正好Qt 5.6.0 版本刚发布,写一篇关于Qt VS2015 版本的安装配置说明。这里首先介绍一下集成开发环境( Integrated Development Environment,IDE)的概念,一般IDE 除了直接的代码编辑和项目管理功能,还有非常重要 的功能就是编译链接生成目标程序,以及调试目标程序可能的错误。

2017-02-21

解决图像去噪问题

发表于 2018-04-14 最后回复 2020-03-02

OpenCV4.1.0中使用FlannBasedMatcher报错

发表于 2019-08-29 最后回复 2019-12-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除