Code
mingo_敏
这个作者很懒,什么都没留下…
展开
-
std::vector<cv::Mat>和unsigned char** in_pixels 互相转换
转换为unsigned char** in_pixels,将std::vector。原创 2024-02-07 16:02:12 · 410 阅读 · 0 评论 -
如何在不重新编译程序的情况下,使其能够正常调用已更改名称的DLL
【代码】如何在不重新编译程序的情况下,使其能够正常调用已更改名称的DLL。原创 2024-01-17 10:44:01 · 434 阅读 · 0 评论 -
c#向c++(opencv)实现base64图像数据传递和编解码
【代码】c#向c++(opencv)实现base64图像数据传递和编解码。原创 2023-11-02 16:45:41 · 331 阅读 · 0 评论 -
C++ STL(Standard Template Library) 标准模板库
list(链表容器):是一个长度可变的、由 T 类型元素组成的序列,它以双向链表的形式组织元素,在这个序列的任何地方都可以高效地增加或删除元素(时间复杂度都为常数阶 O(1)),但访问容器中任意元素的速度要比前三种容器慢,这是因为 list 必须从第一个元素或最后一个元素开始访问,需要沿着链表移动,直到到达想要的元素。使用此容器,在尾部增加或删除元素的效率最高(时间复杂度为 O(1) 常数阶),在其它位置插入或删除元素效率较差(时间复杂度为 O(n) 线性阶,其中 n 为容器中元素的个数);原创 2023-07-14 16:23:53 · 987 阅读 · 0 评论 -
C++11 智能指针
C++ 智能指针底层是采用引用计数的方式实现的。简单的理解,智能指针在申请堆内存空间的同时,会为其配备一个整形值(初始值为 1),每当有新对象使用此堆内存时,该整形值 +1;反之,每当使用此堆内存的对象被释放时,该整形值减 1。当堆空间对应的整形值为 0 时,即表明不再有对象使用它,该堆空间就会被释放掉。原创 2023-07-14 14:56:30 · 113 阅读 · 0 评论 -
C++编译防火墙: Pimpl
因此我们可以把Peson类的实现细节放在Person::Impl中, 而在Person中使用私有的std::unique_ptr来访问Person::Impl。Pimpl(Pointer to implementation) 是一种减少代码依赖和编译时间的C++编程技巧,其基本思想是将一个外部可见类(visible class)的实现细节(一般是所有私有的非虚成员)放在一个单独的实现类(implementation class)中,而在可见类中通过一个私有指针来间接访问该实现类。原创 2023-07-14 11:07:24 · 422 阅读 · 0 评论 -
c# 调用C/C++ DLL,传入返回结构体以及指针数组(指针指向自定义的结构体)
【代码】c# 调用C/C++ DLL,传入返回指针数组(指针指向自定的结构体)原创 2023-04-17 14:37:59 · 2493 阅读 · 2 评论 -
git常用命令速查
git常用命令速查原创 2022-11-03 13:36:48 · 107 阅读 · 0 评论 -
Pycharm中Debug调试不小心关闭Console窗口
找到 C:\Users\xxx.PyCharm2019.3\config\options中runner.layout.xml文件。原创 2022-10-05 11:45:39 · 331 阅读 · 0 评论 -
NVIDIA-Docker安装教程
然后,进行免秘钥配置:sudo addgroup --system dockersudo adduser $USER dockernewgrp dockerUbuntu18.04:1 安装docker-ce:https://docs.docker.com/engine/install/ubuntu/2 GPU驱动安装:如果没有按照驱动https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)3原创 2021-12-14 10:15:10 · 3196 阅读 · 0 评论 -
linux启动后sshd服务自动运行
将启动命令添加到/etc/rc.local文件中或者/etc/rc.d/rc.local文件中;vi /etc/rc.local添加内容如下:service sshd start或者:/etc/init.d/sshd start原创 2021-12-07 13:18:02 · 1038 阅读 · 0 评论 -
yolov5检测限定长宽比检测范围的目标
正常环境下,我们所使用的数据中,不同类别的目标尺寸范围都有一定的范围,在工业缺陷检测领域尤其如此,因此我们修改yolov5使其能针对特定目标只输出特定区域的目标。如: A目标长宽比大于10小于20, B目标长宽比大于20小于40等修改如下:train.pyparser.add_argument('--ar_thr', nargs='+', type=int, default=[101,130,46,12,17], help='ar_thr of dataset to be used')datas原创 2021-08-27 14:20:48 · 2929 阅读 · 1 评论 -
实用的C++线程池
代码来自:https://github.com/progschj/ThreadPool/blob/master/ThreadPool.h#ifndef THREAD_POOL_H#define THREAD_POOL_H#include <vector>#include <queue>#include <memory>#include <thread>#include <mutex>#include <condition_v原创 2021-08-24 15:53:43 · 137 阅读 · 0 评论 -
PyTorch中的Hook函数
Hook 函数是在不改变主体的情况下,实现额外功能。由于 PyTorch 是基于动态图实现的,因此在一次迭代运算结束后,一些中间变量如非叶子节点的梯度和特征图,会被释放掉。在这种情况下想要提取和记录这些中间变量,就需要使用 Hook 函数。PyTorch 提供了 4 种 Hook 函数。1 torch.Tensor.register_hook(hook)**功能:**注册一个反向传播 hook 函数,仅输入一个参数,为张量的梯度。hook函数:hook(grad)参数:grad:张量的梯度原创 2021-05-26 14:59:15 · 1611 阅读 · 0 评论 -
Numba加速python代码
Numba 读取装饰函数的 Python 字节码,并将其与有关函数输入参数类型的信息结合起来,分析和优化代码,最后使用编译器库(LLVM)针对你的 CPU 生成量身定制的机器代码。每次调用函数时,都会使用此编译版本,来达到加速的目的。import mathimport timefrom numba import njit, prange# @njit 相当于 @jit(nopython=True)@njitdef is_prime(num): if num == 2: .原创 2021-04-20 09:56:54 · 441 阅读 · 0 评论 -
修改yolov5的输入图像尺寸为指定尺寸
yolov5支持两种训练方式:加入指定输入img-size为640square (w==h)如 输入为 [b, c, 640, 640], 可以使用mosic数据增强方式增强图像rect(scale):如 输入为 [b, c, 640, 512], 其中512为短边放缩以后的尺寸(补充到32的倍数)但是不支持mosic数据增强方式但是有的时候在实际项目使用中,可能会涉及到需要同时指定输入图像的长和宽,因为对yolov5代码做一些修改以适应于项目需求。修改后的代码如下:....原创 2021-04-12 15:00:34 · 28634 阅读 · 24 评论 -
NVIDIA DALI从入门到放弃之二:入门示例
NVIDIA DALI从入门到放弃之一:概述NVIDIA DALI从入门到放弃之二:入门示例NVIDIA DALI从入门到放弃之三:Data LoadingNVIDIA DALI从入门到放弃之四:Multiple GPUNVIDIA DALI从入门到放弃之五:Image ProcessingNVIDIA DALI从入门到放弃之六:Geometric TransformsNVIDIA DALI从入门到放弃之七:Sequence ProcessingNVIDIA DALI从入门到放弃之八:PyTo原创 2021-03-25 22:38:32 · 2091 阅读 · 0 评论 -
NVIDIA DALI从入门到放弃之一:概述
NVIDIA DALI从入门到放弃之一:概述NVIDIA DALI从入门到放弃之二:入门示例NVIDIA DALI从入门到放弃之三:Data LoadingNVIDIA DALI从入门到放弃之四:Multiple GPUNVIDIA DALI从入门到放弃之五:Image ProcessingNVIDIA DALI从入门到放弃之六:Geometric TransformsNVIDIA DALI从入门到放弃之七:Sequence ProcessingNVIDIA DALI从入门到放弃之八:PyTo原创 2021-03-25 22:33:42 · 2936 阅读 · 0 评论 -
NVIDIA DALI从入门到放弃之八:PyTorch Plugin API
NVIDIA DALI从入门到放弃之一:概述NVIDIA DALI从入门到放弃之二:入门示例NVIDIA DALI从入门到放弃之三:Data LoadingNVIDIA DALI从入门到放弃之四:Multiple GPUNVIDIA DALI从入门到放弃之五:Image ProcessingNVIDIA DALI从入门到放弃之六:Geometric TransformsNVIDIA DALI从入门到放弃之七:Sequence ProcessingNVIDIA DALI从入门到放弃之八:PyTo原创 2021-03-25 22:12:23 · 236 阅读 · 0 评论 -
NVIDIA DALI从入门到放弃之六:Geometric Transforms
NVIDIA DALI从入门到放弃之一:概述NVIDIA DALI从入门到放弃之二:入门示例NVIDIA DALI从入门到放弃之三:Data LoadingNVIDIA DALI从入门到放弃之四:Multiple GPUNVIDIA DALI从入门到放弃之五:Image ProcessingNVIDIA DALI从入门到放弃之六:Geometric Transforms1 Cataloguerotation - rotate by given angle (in degrees) aroun原创 2021-03-24 22:21:13 · 805 阅读 · 1 评论 -
深度学习论文: RepVGG: Making VGG-style ConvNets Great Again及其PyTorch实现
深度学习论文: RepVGG: Making VGG-style ConvNets Great Again及其PyTorch实现PDF: https://arxiv.org/pdf/2101.03697.pdfPyTorch: https://github.com/shanglianlm0525/PyTorch-NetworksPyTorch: https://github.com/shanglianlm0525/CvPytorch1 概述2 RepVGG2-1 VGG样式的网络优点2-2 a原创 2021-02-25 11:08:57 · 879 阅读 · 0 评论 -
LabelingPixelFromImage
#include “common.h”#define WIDTH 160#define HEIGHT 160int g_Patten[(WIDTH * HEIGHT + 1) / 2 + 1];//Find the root of the tree of node iint findRoot(const int *P, int i){int root = i;while (P[ro...原创 2020-12-03 13:03:46 · 207 阅读 · 1 评论 -
python设计模式之装饰器模式(Decorator Pattern)
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。代码来自:https://github.com/shanglianlm0525/CvPytorchdef logger_info(f): @functools.wraps(f) # @wraps(f) def info(*args, **kwargs): logger.info('Begin to i原创 2020-12-03 10:26:23 · 644 阅读 · 1 评论 -
python设计模式之适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.这里performanceLogger 需要根据不同的需求调用ClassificationEvaluator,SegmentationEvaluator,VOCEvaluator或者COCOEvaluator类的实现其实也可以使用工厂模式来实现。代码来自:https://github.com/shanglianlm0525原创 2020-12-01 09:32:17 · 647 阅读 · 0 评论 -
PyTorch实现的Inception-v3
PyTorch实现的Inception-v3PyTorch: https://github.com/shanglianlm0525/ClassicNetworkPyTorch代码:原创 2019-08-11 12:57:01 · 12210 阅读 · 6 评论 -
PyTorch实现的Inception-v2
PyTorch实现的Inception-v2PyTorch: https://github.com/shanglianlm0525/ClassicNetworkPyTorch代码:原创 2019-08-11 12:56:53 · 4751 阅读 · 1 评论 -
Git 奇技淫巧
原创 2020-11-10 14:00:57 · 300 阅读 · 0 评论 -
Python中五种不同读取图片的方式
imgpath = '2968538221504814A.jpg'1 matplotlibimport matplotlib.pyplot as pltimport numpy as npimg1 = plt.imread(imgpath)2 PIL(pillow)from PIL import Image # 导入PIL库img2 = Image.open(imgpath)cv2import cv2 # 导入OpenCV库img3 = cv2.imread(imgpath)原创 2020-06-08 12:44:03 · 1012 阅读 · 0 评论 -
图像主题色提取算法
图像主题色提取算法 本文地址:许多从自然场景中拍摄的图像,其色彩分布上会给人一种和谐、一致的感觉;反过来,在许多界面设计应用中,我们也希望选择的颜色可以达到这样的效果,但对一般人来说却并不那么容易,这属于色彩心理学的范畴(当然不是指某些伪神棍所谓的那种)。从彩色图像中提取其中的主题颜色,不仅可以用于色彩设计(参考网站:Design Seeds),也可用于图像分类、搜索、识别等,本文分别总结并实现图转载 2015-11-26 08:13:10 · 28332 阅读 · 2 评论 -
蒙特卡罗法(Monte Carlo Methods)
本文主要介绍 Monte Carlo 方法及它的一些简单应用,还有它的一些难点。本文地址:http://blog.csdn.net/shanglianlm/article/details/47081945原创 2015-07-27 14:13:03 · 4386 阅读 · 0 评论 -
粒子滤波Matlab代码
粒子滤波Matlab代码,很详实。看完秒懂!本文地址:http://blog.csdn.net/shanglianlm/article/details/47445909转载 2015-08-13 11:09:39 · 13168 阅读 · 3 评论 -
Java创建一个文本文件,并对其进行读写操作
Java 创建一个文本文件,并对其读和写。本文地址:http://blog.csdn.net/shanglianlm/article/details/47420183原创 2015-08-11 14:53:28 · 20242 阅读 · 1 评论 -
K-means++ 聚类
[本文链接:http://blog.csdn.net/shanglianlm/article/details/45919679,转载请注明出处]K-means算法的主要缺陷:聚类的个数K 需要预先给定。初始聚类中心要人为或者随机选择,不同的选取对最后的聚类结果影响很大。k-means++算法基本思想Kmeans++主要针对上面的第二个缺陷进行处理。k-means++算法选择初始seeds的基本原创 2015-11-03 22:22:43 · 1944 阅读 · 0 评论 -
KMP算法的C语言实现
KMP算法是一种快速的字符串匹配算法,它的算法复杂度为 O (m+n)。本文地址:http://blog.csdn.net/shanglianlm/article/details/48394943原创 2015-09-14 14:32:18 · 1551 阅读 · 0 评论 -
Java 常见的几种排序算法-插入、选择、冒泡、快排、堆排等
本文地址:本文就是介绍一些常见的排序算法。排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序、选择排序、冒泡排序、快速排序(重点)、堆排序、归并排序等等。看下图:给定数组:int data[] = {9,2,7,19,100,97,63,208,55,78} 一、直接插入排序(内部排序、O(n2)、转载 2015-11-05 16:08:35 · 1071 阅读 · 0 评论 -
java反射测试
本文地址:http://blog.csdn.net/shanglianlm/article/details/48830635 代码主要用于 java 中的反射测试,可以用来调试代码。原创 2015-09-30 17:11:49 · 572 阅读 · 0 评论 -
java:代理测试
本文地址:http://blog.csdn.net/shanglianlm/article/details/48914591原创 2015-10-05 16:01:33 · 1274 阅读 · 0 评论 -
JSTL(Java Server Pages Standard Tag Library)标签函数库
JSTL(Java Server Pages Standard Tag Library)标签函数库 本文地址:http://blog.csdn.net/shanglianlm/article/details/52288497JSTL所提供的标签函数库主要分为五大类:核心标签库 (Core tag library) <%@taglib prefix="c" uri="http://java.su原创 2016-08-23 11:16:33 · 1485 阅读 · 0 评论 -
车牌识别算法实现及其代码实现之一:车牌区域检测
本文地址:本文主要处理汽车车牌的识别过程,包括三个步骤,一:车牌区域检测,本文利用车牌的颜色和形状特征确认并获取汽车的车牌位置,二:字符分割,将获取到的汽车车牌按不同字符进行切割,三:车牌识别,最后利用模板匹配方式对切割的字符进行识别达到最终的车牌识别。一 车牌区域检测 1 首先读入我们要识别的车辆图片,灰度化后,我们使用robert算子对其进行边缘检测;如下图 代码如下:file='2.jpg原创 2017-09-16 19:38:07 · 32970 阅读 · 66 评论 -
【OpenCV】将单通道的Mat对象转换为三通道的Mat
/*************************************************// Method: convertTo3Channels// Description: 将单通道图像转为三通道图像// Returns: cv::Mat // Parameter: binImg 单通道图像对象******************************...转载 2019-01-31 10:23:24 · 5800 阅读 · 2 评论