自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (9)
  • 收藏
  • 关注

原创 c++ OpenCV——提取图像的局部区域

有时候整幅图像需要采取局部,如何进行采取呢。

2023-03-18 00:38:38 2118 1

原创 ncnn模型精度验证

ncnn模型验证

2023-02-14 11:12:24 491

原创 Qt实现YOLO目标检测及其界面制作

1、环境的搭建本文带你详细了解如何采用Qt搭建深度学习环境,如何制作界面,便于后期的部署与检测。1.1 深度学习模型的准备本文使用的深度学习模型为YOLO系列的轻量级检测模型,模型环境:pytorch1.7.1、python3.6+、ncnn、opencv3+。方便的话,可以直接采用作者已经训练好的模型。1.2 Qt creator的环境搭建有了深度学习模型后,在Qt环境中,需要搭建以下环境,博主采用的是MinGW64位的编译器,需要采用该编译器编译ncnn、opencv库,这样Qt才能使用这

2022-05-05 09:33:30 6110 3

原创 QT5实现一个时钟桌面并打包部署

qt创建界面程序、打包部署

2022-01-19 16:52:24 2336 3

原创 ubuntu16.04虚拟机上跑通ncnn模型

ubuntu16.04虚拟机上跑通ncnn模型** 本文只讲解如何在Ubuntu上跑通ncnn模型的流程,具体实现细节,需要大家再去详细查找相关资料。**1、安装编译OpenCV库跑ncnn模型离不开OpenCV库,因此需提前安装并编译好OpenCV及相关库。2、安装及编译ncnn库2.1 准备文件安装编译完ncnn库后,如何跑通自己的ncnn模型呢,本文主要介绍。首先,将需要的文件准备在一个文件夹中,如图所示:准备模型文件.bin和.param文件,源文件:demo.cpp yolo-f

2022-01-07 15:52:09 565

原创 ubuntu16.04上安装编译opencv库

ubuntu安装与编译OpenCV

2022-01-05 14:05:58 1652

原创 使用albumentations数据增强库加载自己的数据集

albumentations数据增强库的使用,主要是数据集的增强与加载。

2021-12-23 14:31:40 1469

原创 git上传代码到github仓库里

git上传代码到github仓库(通过ssh方式)1、创建ssh进入本地要上传代码的文件夹中,打开 Git Bash Here。依次输入以下命令: ssh-keygen -t rsa -C "your_email@qq.com"“your_email@qq.com”改成自己注册github时的邮箱。回车之后会要求确认路径和输入密码,直接一路回车就行。成功的话会在~/下生成.ssh文件夹,进去打开id_rsa.pub,复制里面的key。 cat ~/.ssh/id_rsa.pub直

2021-08-25 10:39:13 232

原创 自定义网络构建图像分类模型

图像分类1、构建自己的简单网络模型

2021-08-25 09:07:00 232

原创 QT报错: ‘C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe‘ failed

运行QT报错环境:win10 + QT5.12+ vs2019报错:NMAKE???? error: U1077: ‘C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe’ failed with exit status 1158解决:将 C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86中的rc.exe与rcdll.dll

2021-08-24 16:33:12 2468

原创 将pytorch训练的模型转为ncnn模型

1、训练自己的pytorch模型训练完成后,生成.pth后缀模型,此时要转为可部署的ncnn模型需要经历一些过程,如下:.pth -> .onnx -> .pram 和 .bin模型2、.pth转.onnx2.1 避坑有时候会出现onnx库不能将某些模块转换出来,如mobilenet中的hardswish激活函数就不能被转换,原因是由于pytorch的版本低,导致无法转换,可以升级pytorch的版本。2.2 代码以下代码为将.pth文件转为.onnx文件import torch

2021-08-02 17:28:48 1986 4

原创 在txt中添加图像路径并将多个txt中的内容逐行拼接

在txt中添加图像路径并将多个txt中的内容逐行拼接1、将图像集的路径全部添加到txt中新建txt文件,输入如下指令。dir G:/pycharm_pytorch171/Classfication/data/test/imgs ./b/s>G:/pycharm_pytorch171/Classfication/data/test/test.txtpause将上面的txt后缀改为.batcmd打开上面bat所在文件夹,输入下面的指令,即可生成test.txtdir/b/s &

2021-07-08 08:55:11 507

原创 模板匹配

模板匹配1、模板匹配1.1 介绍opencv中支持的比较方法有6种,分别如下:1、cv::TM_SQDIFF:该方法使用平方差进行匹配,因此最佳的匹配结果在结果为0处,值越大匹配结果越差。2、cv::TM_SQDIFF_NORMED:该方法使用归一化的平方差进行匹配,最佳匹配也在结果为0处。3、cv::TM_CCORR:相关性匹配方法,该方法使用源图像与模板图像的卷积结果进行匹配,因此,最佳匹配位置在值最大处,值越小匹配结果越差。4、cv::TM_CCOR

2021-04-15 20:00:59 1010

原创 直方图的反向投影

直方图的反向投影1、直方图的反向投影实现步骤:反向投影步骤:使用到的api:mixChannles(src, dst, channels);channels表示输入图像的通道复制到输出图像的通道,{0,0}表示输入图像的第0个通道复制到输出图像的第0个通道。const vector<int>& nchannels = { 0,0 };mixChannels(hsv, hue, nchannels);2、代码实现#include <opencv2/ope

2021-04-14 10:44:57 122

原创 直方图的比较

直方图的比较1、直方图的比较1.1直方图的比较a.相关性b.卡方计算c.十字计算d.巴氏距离计算1.2 步骤api:2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;string Tostring(double d);int main(int argc, char** argv){ M

2021-04-11 14:54:43 661

原创 直方图操作

直方图操作1、直方图均衡化直方图均衡化api:2、代码实现#include <opencv2/opencv.hpp>#include <iostream>int main(int argc, char** argv){ Mat img = imread("G:/testpic/img.png"); if (img.empty()) { printf("cannot load the image"); return -1; } namedWi

2021-04-10 14:58:49 161

原创 像素映射

像素映射1、像素映射像素映射:将输入图像的像素按照一定规则映射到另外一张图像的对应位置上,形成一张新的图像。api:2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;Mat img,dst, map_x, map_y;int index;void PicMap(void);int main(int argc, char

2021-04-07 09:35:07 3420

原创 霍夫圆检测(HoughCircles)

霍夫圆检测1、霍夫圆检测从平面坐标到极坐标需要转换三个参数,C(x0,y0,r)C(x_0,y_0,r)C(x0​,y0​,r),其中(x0,y0)(x_0,y_0)(x0​,y0​)为圆心。假设平面坐标中任意一个圆上的点,转换到极坐标中,C(x0,y0,r)C(x_0,y_0,r)C(x0​,y0​,r)处有最大值,霍夫变换基于此原理。api:InputArray: 输入图像,数据类型一般用Mat型即可,需要是8位单通道灰度图像OutputArray:存储检测到的圆的输出矢量meth

2021-04-06 18:31:45 20476 6

原创 霍夫直线检测

霍夫直线检测(HoughLinesP)1、霍夫直线检测霍夫直线检测的前提是已经完成图像的边缘检测,主要是完成直线从平面坐标空间到极坐标空间的转换。2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat img = imread("G:/testpic

2021-04-06 11:01:40 695

原创 Canny边缘检测

Canny边缘检测1、Canny边缘检测Canny是一种很好的边缘检测器,也是一种常见的图像处理算法。实现Canny边缘检测的步骤:1、高斯模糊2、转灰度3、计算梯度(Sobel/Scharr)4、非最大信号抑制5、高低阈值输出二值图高低阈值的输出:Canny边缘检测的api:2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using name

2021-04-03 10:48:24 268

原创 拉普拉斯算子

拉普拉斯算子(laplacian)1、拉普拉斯算子拉普拉斯边缘提取与sobel提取不同在于:sobel是一阶导,反应的是图像中像素跃迁较大的边缘部位,而laplacian二阶导反应的是图像中最大变化处的值,即零值,从而提取边缘。拉普拉斯处理流程:1、高斯滤波2、转灰度3、计算梯度(二阶导)4、取绝对值(convertScaleAbs)5、 结果2、代码实现#include <opencv2/opencv.hpp>#include <iostream&gt

2021-04-02 10:50:42 2529

原创 边缘处理之sobel、scharr

边缘处理之sobel、scharr1、边缘处理之sobel、scharr原函数:一阶导:水平梯度:垂直梯度:最终梯度:scharr算子:SobelApi:Sobel(src, dst, depth, dx, dy, ksize)2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(i

2021-04-01 21:57:51 245

原创 边缘处理

边缘处理1、边缘处理增加图像边缘api:2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat img = imread("G:/testpic/img.png"); if (img.empty()) { printf("cannot load

2021-03-28 21:05:46 273

原创 滤波器

常用滤波器1、Robert、Sobel、Laplace算子Robert算子:Sobel算子:Laplace算子:卷积与Kernel的概念:api:filter2D(src, dst, depth, kernel, anchor, delta)2、代码实现#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(

2021-03-28 12:16:17 119

原创 阈值分割

C++阈值分割1、阈值分割5种类型的阈值分割如下:第一种:阈值二值化蓝色线表示阈值原理:像素值大于阈值时,为最大值,小于阈值则为0。第二种:阈值反二值化原理:像素值大于阈值时,为0,否则为设定的最大值。第三种:截断原理:像素值大于阈值时,为设定的阈值,否则为像素值本身。第四种:阈值取零原理:像素值大于阈值时,为像素值,否则为0.第五种:阈值反取零原理:像素值大于阈值时,为0,否则为像素值本身。2、代码实现#include &l

2021-03-27 18:27:46 4264

原创 图像金字塔与高斯不同(DOG)

图像金字塔与高斯不同(DOG)1、图像金字塔1.1 图像金字塔上采样拉普拉斯金字塔:图像的上采样图像的宽高会增加到原来的2倍。api如下:pyrUp(src, dst, Size(src.cols * 2, src.rows * 2));1.2图像的下采样高斯金字塔:图像的降采样(下采样)图像的宽高减少到原图的1/2倍。api如下:pyrDown(src, dst, Size(src.cols /2, src.rows /2));1.2高斯不同(DOG)高斯不同的意思就是对

2021-03-25 22:33:54 401

原创 图像处理之提取水平线与垂直线

提取水平线与垂直线1、提取水平线与垂直线步骤输入彩色图像–imread 转换为灰度图–cvtColor转换为二值图–adaptiveThreshold进行图像的开运算(先腐蚀后膨胀)提取垂直线提取水平线api二值化:adaptiveThreshold(src, dst, maxValue, adaptiveMethod, thresholdType, blocksize, C)src:灰度图dst:二值图maxValue:二值图像最大值adapti

2021-03-23 21:14:22 692

原创 形态学操作

c++图像形态学操作1、开运算开运算:先腐蚀后膨胀。对左图进行闭运算,先进行腐蚀,腐蚀就是将最小值像素赋值给锚点,即将黑色像素值赋值给锚点,除去了白色点,后进行膨胀,将最大值即白色点赋值给锚点。图像开运算api:morphologyEx(src, dst, MORPH_OPEN, struct, Point);struct: 结构元,kernel:卷积核大小,Point: 锚点的位置。2、闭运算闭运算:先进行膨胀后进行腐蚀。左图经过闭运算得到右图,首先进行膨胀操作,即将

2021-03-22 21:34:31 116

原创 膨胀与腐蚀操作

图像的膨胀与腐蚀1、图像的膨胀跟卷积操作类似,如有图像A, 结构元B, 结构元B在A上面移动,其中定义B的中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,B可以是任意的形状。原图:膨胀后的图:示例图像中,原图白色较多(255,255,255), 黑色(0,0,0)区域较少,根据膨胀原理,将结构元B对应A的区域中最大的值赋值给锚点,即将(255,255,255)像素值赋值给锚点,即膨胀后白色的区域增加,黑色的区域减少。膨胀操作所需api:getStructuringElement(

2021-03-21 22:09:18 908

原创 中值模糊与双边模糊

中值模糊与双边模糊1、中值模糊中值模糊的作用:中值滤波对椒盐噪声有很好的抑制作用。原理:中值模糊api:medianBlur(src, dst, ksize);2、双边模糊均值模糊:均值模糊无法克服边缘像素信息丢失,因为基于平均权重。高斯模糊:高斯模糊可以部分克服边缘像素的信息的丢失,但不能完全避免,因为像素值的不同。高斯双边模糊:高斯双边模糊可以避免边缘信息的丢失,保留图像的轮廓。双边模糊api:bilateralFilter(src, dst, d, color, space)

2021-03-21 18:43:58 522

原创 均值模糊与高斯模糊

C++均值模糊与高斯模糊1、均值模糊1.1、 模糊原理:平滑、模糊是图像常见的简单处理之一,主要目的是为了降低图像中的噪声。模糊操作的原理是数学中的卷积运算。f(i,j)f(i,j)f(i,j) 表示图像中处理的像素,(k,l)(k,l)(k,l)表示滤波器的大小,一般情况下,k=lk=lk=l。运算过程就是将卷积核中的值对应图像中的值相乘后相加。将所得值就是像素g(i,j)g(i,j)g(i,j)。1.2、均值模糊2、高斯滤波σx\sigma_xσx​、σy\sigma

2021-03-21 12:26:13 718

原创 c++画直线、矩形、圆、椭圆

c++画图1、画直线line(src, p1, p2, color, thickness, typeline) // src:图像,p1:起始点,p2:终止点,color:颜色,thickness:线宽,typeline:线型。2、画矩形rectangle(src, rect, color, thickness, typeline) // rect:矩形的形状。3、画椭圆ellipse(src, 中心点,长轴长, 短轴长, 旋转角度,椭圆的起始度数,椭圆的终止度数,线宽,线型) //ellip

2021-03-17 19:55:40 10044

原创 提升图像对比度与亮度

C++提升图像对比度与亮度1、提升图像对比度与亮度的原理图像的对比度与亮度的调整属于点操作。原理如下:aaa主要控制

2021-03-17 10:29:48 745

原创 图像处理之图像混合

c++图像处理之图像混合1、图像混合原理图像混合的原理如下:以两张图像为例;aaa 为权值参数,f0(x)f_0(x)f0​(x)表示第一张图像,f1(x)f_1(x)f1​(x)表示第二张图像。g(x)g(x)g(x)表示权重融合后两张图像的形式。示例图:结果图:2、代码实现图像混合:addWeight(src1, alpha, src2, alpha, beta, dst)#include <opencv2/opencv.hpp>#include <ios

2021-03-16 15:15:10 1307

原创 图像处理之像素的修改

1、像素的修改操作c++取图像的像素:img.at操作。读取彩色图像的像素值:b通道: img.at(row,col)[0] ; // 表示彩色3通道,分别是b、g、rg通道: img.at(row,col)[1] ;r通道: img.at(row,col)[2];示例图像:结果图像:#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;

2021-03-16 13:52:23 1168

原创 Mat操作

Mat的操作之图像处理1、Mat构造函数Mat M(3,3, CV_8UC3, Scalar(0,0,255));cout << "M=" << M << endl;解释:CV_8UC3:图像的位深度为8,UC表示无符号的char,3表示通道数为3, Scaler的值与通道数一致,表示初始化每个像素的值。2、创建多维数组Mat M;M.create(4,4, CV_8UC3);M = Scalar(125,125,15);cout <<

2021-03-15 16:10:37 293

原创 通过掩膜来实现图像对比度的提升

通过掩膜实现图像对比度的提升通过掩膜实现图像对比度提升通过api实现图像的对比度提升1、通过掩膜实现图像对比度提升示例图像:结果图像:掩膜的大小:代码实现:#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ //读取图像 Mat img = imread(

2021-03-14 22:43:55 209

原创 C++图像处理系列

1、前言2、本文博客的主要内容3、图像处理

2021-03-14 14:43:08 3340 3

原创 C# 图像处理(直方图绘制、直方图匹配等)讲解

1、窗体界面及程序本次窗体设计流程为Form1 -> 绘制直方图 -> 线性点运算 -> 直方图匹配。无窗体:灰度拉伸、直方图均衡。窗体绘制较为基础,读者可自行绘制。主界面Form1如图1所示,里面有博主详细的注释,适合初学者理解:Form1.cs源程序如下:主界面的各个实现部分如下代码所示using System;using System.Collections.Generic;using System.ComponentModel;using System

2020-11-20 13:25:45 4935 3

原创 YOLOV4视频检测并保存

YOLOV4视频检测并保存YOLOV4用于视频检测的代码:读取视频并检测,显示检测后的结果,保存检测完后的视频。from yolo import YOLOfrom PIL import Imageimport numpy as npimport cv2import timeyolo = YOLO()# 调用摄像头capture=cv2.VideoCapture("mp4/01.mp4") # capture=cv2.VideoCapture("1.mp4") #检测的视频路径wi

2020-08-31 17:00:22 5509 12

用于开发时,创建一个本地.ini文件,读取.ini文件中的内容

#include "mineutilshpp/file.hpp" 使用: mineutils::IniFile test_ini; test_ini.open("./test.ini"); std::string method = test_ini.getValue("type_id"); std::string num = test_ini.getValue("num"); printf("type_id=%s\n", method.c_str()); printf("num=%s\n", test_ini.getValue("num").c_str());

2023-10-12

半自动化目标检测标注工具

半自动目标检测标注,但适用于只有一个目标且位置不变的情况

2023-05-15

飞凌开发板OKMX6ULL-S部署毫米波雷达与视觉融合的代码

飞凌开发板OKMX6ULL-S部署毫米波雷达与视觉融合的代码。 可执行文件为can。

2022-06-24

c++光流法,采用c++类的形式进行改写,将检测到运动的物体采用矩形框标注出来。

光流法适用于检测运动的目标。

2022-06-24

飞凌OKMX6ULL-s开发板目标检测Qt程序.zip

这是基于飞凌OKMX6ULL-S开发板,里面包含了基于深度学习的分类与检测项目,可以在其屏幕上显示。

2022-05-13

Qt+yolo_detection

使用Qt+yolo的目标检测,效果一般,类别为80类,仅作参考使用,是一个win10下的exe程序。

2022-05-05

ncnn-master-qt_mingw.zip

采用win10系统,qt5,MinGW64进行ncnn-master的编译。

2022-04-30

Qt_MinGW64+opencv4+ncnn目标检测界面制作V1.2--CHVideoYoloDetection.rar

在V1.1的基础上新增图片检测功能,能够自由选择图片进行检测。 因此V1.1的功能已经包含了:图像检测并保存图片,视频检测等主要功能。

2022-04-29

目标跟踪与计数,可参考,可训练自己的数据集

目标跟踪与计数,可参考,可训练自己的数据集

2022-03-28

CamVid.zip

CamVid数据集是较为经典的语义分割数据集,本数据集已经分割成为训练集,测试集和验证集,方便读者复现。

2020-04-03

json_to_label_rgb.py

用于labelme进行批量化生成json文件夹的python文件,可以将labelme标注后的.json文件转换为json文件夹,里面包含原图,标签,txt文件等。

2020-04-03

空空如也

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

TA关注的人

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