自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 C++ 删除文件夹下所有内容

介绍一种删除文件夹下所有内容的实现方式(包括删除该文件夹)。注:该文件夹下面,无论嵌套多少层文件夹或文件数据,都可以删掉。①do while方式进行循环遍历,直到满足终止条件。①以*.*方式查找所有类型文件。

2023-07-13 20:05:12 1323

原创 将文件夹内容拷贝到另外一个文件夹中

注:首先检验是否存在文件夹,不存在则自动创建。.jpg、*.txt等方式表示具体的类型。方式表示查询所有类型文件,以。

2023-07-13 20:01:37 379

原创 C++ 遍历文件夹中指定类型的文件

【代码】C++ 遍历文件夹中指定类型的文件。

2023-07-13 19:52:56 170

原创 C# 调用 C++ 的回调函数

上一章根据实施例讲解了C++回调函数的应用“https://blog.csdn.net/ETNthrough/article/details/131638784?C# C++也可以参考“https://blog.csdn.net/Vaccae/article/details/111596267”本文将讲解如何通过C#调用C++的回调函数,具体原理可查看。说明:C#调用C++,本文将以DLL方式举例。触发按钮,label值将依次更新:6、2、8。②C#接口调用(这里以按钮触发为例)

2023-07-10 15:47:05 553

原创 C++ 回调函数及使用

【代码】C++ 回调函数及使用。

2023-07-10 15:08:49 251 3

原创 VS2017 配置JSON

1 下载jsoncppjsoncpp下载链接:http://sourceforge.net/projects/jsoncpp/1.1 解压如图1.2 进入…\jsoncpp-src-0.5.0\makefiles\vs71执行jsoncpp.sln,进行编译,会区分Debug/Release以及x86/x64模式。编译过程中常见问题:error MSB8036: 找不到 Windows SDK 版本8.1解决方法:进入控制面板,依次进入:程序->程序和功能->在卸载或更改程序中找

2021-06-27 06:49:05 1199 1

原创 OpenCV/C++ 根据指定分割符合切分string

学习目标:优雅地切分string类型字符串学习内容:在处理字符串时,通常有提取个别字段的需要比如"D://Code////MFC//images",如何获取各个“//”分界线的字符呢直接上代码/*************************************************** 功能描述: 按切割符截取字符串* 参 数: string dataString 源字符串* 参 数: vector<string> &vec切割后的字符串存放

2021-06-03 15:35:23 394 1

原创 OpenCV 绘制矩形

void universalFunc::drawRect(Mat src, Mat &dest, vector<Feather> featherList){ dest = src.clone(); for (int i = 0; i < featherList.size(); i++) { int x1 = featherList[i].boundingbox.x, y1 = featherList[i].boundingbox.y; int width = fea

2021-06-03 15:30:08 475 1

原创 OpenCV 根据面积筛选连通域

学习目标:对二值图进行分析,设定最大最小面积区间保留该面积区间内的区域//src为二值图,minArea、maxArea为面积阈值,dest为结果图像void connectionAreaSelect(Mat src, int minArea, int maxArea, Mat &dest){ Mat labels, stats, centroids, img_color; //连通域计算 int nccomps = connectedComponentsWithStats(

2021-06-02 14:20:05 2140

原创 OpenCV 连通域数量统计

学习目标:1.输入图像为分割结果图像2.根据种子填充法思路,遍历图像,得到每个连通域外接矩形坐标信息、面积信息核心代码/* Input: src: 待检测连通域的二值化图像 Output: dst: 标记后的图像 featherList: 连通域特征的清单(可自行查阅文档) return: 连通域数量。*/int connectionDetect(Mat &src, Mat &dst, vector<Feather> &feather

2021-06-01 15:27:53 1219

原创 OpenCV 区间阈值分割

学习目标:设定最大最小阈值,实现阈值区间的图像分割通过指针遍历图像,提高执行效率(不建议src.at()式访问图像像素)核心代码:提示:这里可以添加要学的内容/* 区间阈值分割 Input: src: 待分割图像,单通道灰度图 minThre、maxThre:前景区间赋值为255,其余赋值为0 Output: dest: 阈值分割图像,二值图*/void intervalThresholdAnylize(Mat src, Mat& dest, int minThre

2021-06-01 15:17:54 461

原创 快速上手代码管理(Git+github)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Git安装及配置1.Git安装->秘钥生成及配置2.复制秘钥到github中的ssh二、github+sourceTree1.下载安装sourceTree2.代码管理总结前言 这里简要介绍如何使用Git托管代码,主要通过sourceTree可视化工具进行操作。主要,这里假设使用者已经用于github账号、sourceTree账号等。一、Git安装及配置1.Git安装->秘钥生成及配置 第一

2021-03-31 09:20:51 256

原创 sourceTree使用注意事项(ssh和账号)

git+sourceTree代码管理介绍使用sourceTree进行代码管理的工具安装相关操作(默认用户已经用于各个工具的相关账号,若没有请自行注册)。1.git下载安装及配置2.sourceTree下载安装及使用。一、git使用第一步:https://git-scm.com/download/win下载最新版本git并安装第二步:配置git①打开Git bash②设置账号和密码git config --global user.name “自已的用户” 例:git config -

2021-03-30 14:39:05 438

原创 Halcon 图像拼接

Halcon 图像拼接这里实现图像纵向拼接(横向的原理类似),直接上代码。read_image(img1,'1.tiff')read_image(img2,'2.tiff')get_image_size(img1,wid1,heig1)get_image_size(img2,wid2,heig2)imagesHeight:=heig1+heig2*创建空白图像get_image_type(img1,imgType)gen_image_const(Image,imgType,wid1,im

2020-05-13 20:02:12 1943 4

原创 OpenCV 异或加密

#pragma once#include<opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include <fstream>#include<random>#include<...

2020-05-13 19:57:44 92 1

原创 OpenCV 图像加密之混沌加密

#pragma once#include<opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include <fstream>#include<random>#include<...

2020-05-13 19:57:16 191 2

原创 Halcon 读取json文件

核心知识:get_dict_tuple、get_dict_param的理解与应用一、get_dict_ttuple算子①定义get_dict_tuple( DictHandle, Key , Tuple)DictHandle:字典句柄key:键tuple:根据Key在句柄下取内容,存放到tuple中②功能:从字典中检索与键关联的元组二、get_dict_param算子①定义...

2020-02-22 18:20:38 2677

原创 Halcon 灰度投影及其应用

算子介绍:一、gray_projections算子①gray_projections(Region, Image, Mode,HorProjection, VertProjection)Region:待处理区域Image:待投影的灰度图Mode:计算投影的方式,有’simple’、 ‘rectangle’,‘simple’HorProjection:水平方向投影VertProject...

2020-02-22 17:05:57 4175

原创 Halcon 图像截取

在Halcon中进行截图有很多坑,比如reduce_domain、get_domain、crop_part等等,每个算子都有不同的功能,经过多次试验验证,crop_part才是名副其实用来截取感兴趣区域的。接下来对其进行详细介绍。crop_part算子:算子定义:crop_part(Image : ImagePart : Row, Column, Width, Height : )Ima...

2020-02-22 16:41:55 6196 1

原创 VS2017配置Halcon

VS2017配置Halcon第一步:创建好VS项目(这里不做描述)第二步:在属性管理器中新建一个文件(方便以后项目中使用,不用每次新建项目都进行配置了)第三步:右键后点击属性①VC++目录 -> 包含目录:添加Halcon安装目录下的include目录\alcon18.11.2.0\include\halcon18.11.2.0\include\halconcpp②VC++...

2020-02-14 10:10:20 1219

原创 解决pip安装超时、安装速度慢的问题

解决pip安装超时、安装速度慢的问题一、更新pip失败原因:因为原来的版本没能成功的卸载掉,所以会回滚,导致,pip的版本依然有问题解决办法,使用指令:python -m pip install -U --force-reinstall pippython -m pip install -U --force-reinstall pip二、python(pip)安装库时间超时解决办法:...

2020-02-10 11:31:19 881

原创 OpenCV 图像保存为二进制文件及其复原(2)

**数据的访问方式不同,效率也不同,今天介绍一种更为高效的方式,直接上代码。** //图像数据存储为二进制流文件 src:源图像 datName:欲保存的文件名 void img2dat(Mat src, string datName) { //把mat 转换 为 IplImage 原因是这种图像格式数据访问更为高效 IplImage img = src; string fi...

2020-02-08 16:24:23 1783 2

原创 OpenCV IPLImage常用方法

**OpenCV IPLImage常用方法**最近在做图像处理时,发现IPLImage比Mat有些优势。①前者虽然比较死板,但访问像素效率非常高(指针的功劳) ②当然,在进行相关操作时,必要时可以将Mat与IPLImage相互转换接下来就开始介绍基本的操作。1.图像读取、显示、保存void imgIpl(){ /* 载入图像 这里有个很有趣的东西,在载入是如下所写“CV_LO...

2020-02-08 16:18:08 1473

原创 OpenCV 读取像素值的常用方法

OpenCV常用读取像素方法及读取速度对比法一 指针法(效率最高)void main(){ //灰度图 Mat src = imread("src.jpg", 0); //图像行、列 int row = src.rows, col = src.cols; for (int i = 0; i < row; i++) { //读取整行数据 uchar* ptr = sr...

2020-02-05 12:07:33 755

原创 并行处理加速图像/事务处理

并行处理加速图像/事务处理1.计算机环境: Windows10 VS20172.OpenMP编程方式 openMP非常容易上手,能够支持C、C++、Fortran语言,支持OpenMP的编译器有:Sun Studio,Intel Compiler,Microsoft Visual Studio,GCC,我是在VS2017工程下进行使用的。 配置方式:在项目上右键->属性-&gt...

2020-02-04 16:02:28 372

原创 OpenCV 图像切分与图像合并

之前写过一种方法,现在介绍一种更简便的方法,即通过调用OpenCV函数来缩减代码量。/********************************************************* @brief : 实现图像分割,* @param num : 分割个数* @param type : 0:垂直分割(推荐),1:水平分割(不推荐)* @return...

2020-02-02 10:39:20 1328 1

原创 VS2017 x64 配置Pthread

首先搜索pthread功能包,如图所示然后在“浏览框”中搜索“pthread”,点击安装即可。注意:在引用#include<pthread.h>运行程序时,会反馈 error C2011: “timespec”:“struct”类型重定义 的错误,这是只需在pthread.h中的#if !defined( PTHREAD_H )#define PTHREAD_H下面加上...

2020-01-31 13:46:43 901

原创 OpenCV 图像切分与图像合并

将一张图片切分成多个小图片并将小图片合并为原图前言 最近用到一个功能,需要将一张原图切分成多个小图像,然后对小图像进行处理,处理之后再将其整合成一张大图像。达到对原图进行处理的目的,这样做的好处是将一个大任务划分为多个小任务,分别进行处理以节约时间(当然需要多线程进行协助,效果才会更明显)。 下面,就以2个模块进行介绍,分别为①图像切分 ②图像合并。/*图像切分(我是按列进行切分的,...

2020-01-30 10:38:02 2984 2

原创 OpenCV 形态学腐蚀

1、基本概念腐蚀与膨胀是一对相反的操作,所以腐蚀就是求全局最小值的操作。腐蚀(erode)是求局部最小值的操作。从数学角度讲,膨胀或腐蚀操作就是将图像(或图像的一部分区域,称之为A)与核(称之为B)进行卷积。核B与图形卷积,即计算核B覆盖的区域的像素点的最小值,并把这个最小值赋值给参考点指定的像素。这样就会使图像中的高亮区域逐渐减小,如图所示,这就是膨胀操作的初衷。核可以是任何形状和大小,它...

2020-01-16 20:04:28 2547

原创 OpenCV 形态学膨胀

1、基本概念膨胀(dilate)是求局部最大值的操作。从数学角度讲,膨胀或腐蚀操作就是将图像(或图像的一部分区域,称之为A)与核(称之为B)进行卷积。核可以是任何形状和大小,它拥有一个单独定义出来的参考点,我们称其为锚点(anchorpoint)。多数情况下,核是一个小的,中间带有参考点和实心正方形或者圆盘。其实可以将核看作模板或者掩码。膨胀操作就是求局部最大值的操作。核B与图形卷积,即计算...

2020-01-16 19:41:59 795

原创 骨架提取算法应用

1、引言根据个人理解,骨架提取(顾名思义)就是根据各个连通区域,将其抽离出与其轮廓近似的单像素表示形态。以便于直观观察、图像的后继处理。因此可以将其视为图像处理中的预处理,其操作是基于二值图。为了更好的提取图像骨架,必要时需要对图像进行相应的预处理(比如去噪、滤波、形态学变换等)。我的应用主要集中在对一些包含线条型的零件检测,除此之外,骨架提取的应用特别广泛,比如文字的检测/识别、道路观测等。...

2020-01-16 10:22:11 4698 2

原创 OpenCV 中值滤波(非线性滤波)

1、非线性滤波多数情况下,使用邻域像素的非线性滤波会得到相当好的效果。比如在噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大值的时候,用高斯滤波器对图像进行模糊的话,噪声像素是不会被去除的,它们只是被转换为更柔和但仍然是可见的散粒。2、中值滤波基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,此方法在去除脉冲噪声、椒盐噪声的同时又能保留图像的边缘细节。基本原理是把数字图像或数字序...

2020-01-16 10:02:38 669

原创 OpenCV 高斯滤波

1.高斯滤波的理论简析高斯滤波是一种线性平滑滤波,可以消除高斯噪声,广泛应用于图像处理的减噪过程。高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或成为卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度去替代模板中心像素点的值。高斯模糊技术生成的图像,其视觉效果就像是经过一个半...

2020-01-16 08:52:44 656

原创 OpenCV 动态调整图像对比度、亮度

OpenCV 动态调整图像对比度、亮度//全局变量声明static void on_ContrasAndBright(int, void*);int g_nContrastValue; //对比度值int g_nBrightValue; //亮度值Mat g_srcImage, g_dstImage;void Test(){ //读取输入图像 g_srcImage = im...

2020-01-10 10:05:12 784

原创 显式创建Mat的方法

显式创建Mat的方法1、使用Mat()构造函数void matCreate(){ int row = 5, col = 5; Mat M(row, col, CV_8UC3, Scalar(0, 0, 255)); cout << "M=" << endl << M << endl;}M=[ 0, 0, 255, 0, ...

2020-01-09 20:31:37 163

原创 OpenCV 图像感兴趣区域:ROI

在图像处理是,我们常常需要设置感兴趣区域(ROI,region of interest),来简化工作过程。即从图像中选择一个图像区域,这个区域是图像分析所关注的重点。 定义ROI区域由两种方法:第一种是使用表示矩形区域的Rect。它指定矩形的左上角和矩形的长、宽,以定义一个矩形区域。 其中,image为已经载入好的图片 //定义一个Mat类型并给其设定ROI区域 Mat imageROI...

2019-12-31 09:50:32 624 1

原创 OUST实现图像分割

一、基本介绍应用:求图像全局阈值,适用于大多需要求图像全局阈值的需求优点:计算简单、快速,不受图像亮度和对比度影响缺点:对图像噪声敏感;只能针对单一目标分割;当目标和背景大小比例悬殊、类间方差函数可能呈现双峰或者多峰,效果不好二、原理OTSU算法假设存在阈值TH,将图像所有像素分为两类C1(小于TH)、C2(大于TH)。这两类像素各自的均值分别为m1、m2,图像全局均值为mG。同事像素被...

2019-12-31 08:10:58 1172

原创 VS2017 OpenCV3.2.0 dll生成与应用

一、新建动态链接库命名:myDll设置路径二、在头文件新建文件①头文件->添加->新建项②在新建项中写如下代码//__declspec(dllexport)是固定格式//后面跟函数的声明__declspec(dllexport) void encry_1channels(Mat src, Mat& dest, double& U, double&am...

2019-12-30 21:52:32 455 1

原创 OpenCV 基于logistic混沌对图像加密与解密

标题数字图像加密方法分析一、数字图像加密方法基本要求和分类1.1图像加密算法要求①安全性。混淆和扩散是设计具有计算安全性的密码的必要条件。 ②实时性。加密算法的使用不能给图像数据传输和存取带来过大的延迟。 ③数据量不发生膨胀。 ④数据格式不变。1.2 数字图像加密算法分类①基于空间域的像素置乱 ②基于混沌加密 ③基于变换域加密 ④基于秘密分割与秘密共享加密 ⑤基于神经网络和元胞自动机加密...

2019-12-30 10:29:54 5336 1

原创 OpenCV 将图像保存为二进制流.bat文件

OpenCV 图像与二进制流数据类型文件相互转换涉及知识点:①文件流的操作②数据写入、读出的操作//将图像以二进制流数据保存到.dat格式文件中 void imgTobinary(Mat src) { //图像宽、高 int height = src.rows, width = src.cols; Mat imgGray = src.clone(); //cvtColo...

2019-12-30 09:56:42 1171 1

空空如也

空空如也

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

TA关注的人

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