- 博客(65)
- 资源 (44)
- 收藏
- 关注

原创 pip加速安装方法
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple +自己想要安装的库的名字例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider,这样就会从清华这边的镜像去安装pyspider库...
2020-01-18 21:29:04
2345
原创 c++ + linux+cmake编译动态库+so调用
使用 g++(GNU C++ 编译器)来编译代码为动态库。使用 -fPIC(Position Independent Code)选项来生成与位置无关的代码,这是创建共享库所必需的。使用 -shared 来创建共享库,并指定输出文件的名称(通常以 .so 结尾)。这里,-L. 选项告诉编译器在当前目录查找库,-lhello 选项告诉它链接 libhello.so(注意 lib 前缀和 .so 后缀在指定时会被省略)。生成libhello.so动态链接库文件。1、通过命令行生成动态库。2、通过cmake编译。
2024-08-06 21:39:25
620
原创 vscode+linux+opencv环境配置
解决方法:只要将 launch.json文件中的preLaunchTask参数改为和tasks.json中label值一样,这个问题就能解决。(在openCV2.2版本之后,需要用cmake来生成Makefile文件,在安装OpenCV之前,要安装cmake以及cmake依赖库)make -j4是指4核同时编译,可以根据自己的核数进行调整,比如-j5,核数越多编译速度就越快。1、在终端输入以下代码,以安装C/C++编译器(GCC/G++)。或使用下面命令,但需要手动配置环境变量信息。为了避免出现下面错误。
2024-08-05 17:35:08
1699
3
原创 薄板样条插值TPS原理以及torch和opencv实现
薄板样条(Thin Plate Spline),简称TPS,是一种插值方法,可找到通过所有给定点的“最小弯曲”光滑曲面。因为它一般都是基于2D插值,所以经常用在在图像配准中,也可以用于图像扭曲变形(扩充图像)。在两张图像中找出N个匹配点,应用TPS可以将这N个点形变到对应位置,同时给出了整个空间的形变(插值)。在使用TPS图像配准过程中,需要输入原始图像初始点(也就是变换前像素点的位置),和目标图像的目标点(也就是变换之后像素点在目标图像中的位置)。
2024-04-22 21:59:23
3145
1
原创 双线性插值计算手动实现以及原理
先贴代码吧,原理其实也比较简单,看代码基本也就理解了,时间太晚了,原理后续再补吧。假设AB=AD/2,那么B的坐标等于(1-0.5)×A+0.5×D= 3.5。E的像素值等于e = (D×a+B×c+A×d+C×b)/(A+B+C+D)那么C点坐标等于(1-0.6)×A+0.6×D=3.8。自己试了几组数据,结果均与torch一致。那么在双线性插值的情况下,
2024-04-22 21:56:03
487
原创 cv2技术原理-图像旋转原理及手动实现
设点M在原坐标系中的坐标为(x,y),对应向量的模为r,幅角为α.将坐标轴绕坐标原点,按照逆时针方向旋转角θ形成新坐标系,点M在新坐标系中的坐标为(如图2-4),则。图像旋转在对数据集数据增强(主要是随机以任意角度进行旋转)方面用途很广,是仿射变换的一种。不改变坐标原点的位置和单位长度,只改变坐标轴方向的坐标系的变换,叫做坐标轴的旋转.。第一个参数旋转中心,第二个参数旋转角度(正数表示逆时针),第三个参数:缩放比例。也可以是以下形式,注意旋转方向与正负的关系即可。在opencv中,负数表示的是逆时针。
2024-04-20 17:57:15
2364
1
原创 cv2技术原理-仿射变换原理及手动实现
因为图像中像素点p的坐标可以使用(x,y)表示,变换之后该像素p的位置变换到了坐标(u ,v)。这个矩阵是2×3的,但是这会改变原始图像的维度,为此,增加一个维度,构造齐次变换矩阵3×3。再解释一下上面三个点的直观解释就是把下图中的红点拉到绿点,然后图像的其余点跟着进行线性变换。中选了三个点[0,0]、[100,979]、[1819,100]。中选了三个点[0,0]、[0,1079]、[1919,0]。,仿射变换矩阵为2x3的矩阵,如下图中的矩阵M,其中的。原始图像上的点和目标图像上的点一一对应。
2024-04-20 15:26:59
1447
1
原创 python c++混合编程-cmake
编译完成生成tryPybind.cpython-38-x86_64-linux-gnu.so文件,即可通过python引用。“main”, &main意思是将c++ 中的main函数绑定到 python中可以引用的函数main上。编译成功生成tryPybind.cpython-38-x86_64-linux-gnu.so文件。创建trypybind.cpp文件。trypybind,库名,创建try.py文件。
2024-03-04 17:14:19
709
1
原创 VScode + opencv(cmake编译) + c++ + win配置教程
打开cmd,cd至刚刚的构建目录下C:\Users\wuxulong\cpp_env_2\opencv\build\mingw-build,简单总结下:finish->configuring done->configure->generate。程序会开始自动生成Makefiles等文件配置,需要耐心等待一段时间。新建文件夹mingw-build。4、cmake编译opencv。双击cmake-gui。
2023-11-11 00:31:27
2796
1
原创 VScode + opencv + c++ + win配置教程
下载完解压放到一个文件夹里面,便于环境管理,文件夹我重命名了,解压出来文件名不一样正常。8、新建c_cpp_properties.json。7、新建launch.json。6、新建task.json。4、安装vscode扩展。5、新建main.cpp。9、运行 快捷键F5。
2023-11-03 23:41:56
2450
3
原创 ImportError: DLL load failed while importing _pyopenvino: 找不到指定的程序
ImportError: DLL load failed while importing _pyopenvino: 找不到指定的程序。完全按照官方的pip安装方式,但是报错。否则会有报错信息输出!无报错信息输出,说明成功。
2023-10-29 23:50:35
2069
6
原创 点到三角形(二维平面)的距离 算法笔试python
不确定理解的对不对,仅供参考点可能在三角形内,也可能在三角形外,点在三角形内则返回0;在三角形外则返回点到三角形的最短距离。三角形三个点为(A,B,C),另外一点为P思路是:利用面积来计算如果点在三角形内:则该点P与点ABC组成的三角形PAB,PAC,PBC面积之和等于ABC,包括点在边上的情况。如果点在三角形外:则计算PAB,PAC,PBC的面积和ABC的面积以及各边边长,利用面积等于底×高/2,可以求出距离d。点到AB的距离dAB:dAB=2*PAB/AB;PAB表示三角形PAB的面积
2022-04-11 17:57:35
2328
原创 列表创建踩坑——一个值改变其余值也会改变
dp = [[float('inf')]*2]*(2+1)dp1 = [[float('inf')]*2 for _ in range(2+1)]dp[1][0] = 1dp1[1][0] = 1print((dp))print((dp1))[[1, inf], [1, inf], [1, inf]][[inf, inf], [1, inf], [inf, inf]]因为乘法是引用的地址,for循环是创建新地址内存也可以利用深拷贝解决...
2022-04-10 11:41:03
234
原创 列表“维度”转换,三维转二维,二维转一维
a=[[[1,2,3],[1,2,3]],[[4,5,6],[4,5,6]]]print(a)print(sum(a,[]))b=sum(a,[])print(sum(b,[]))结果[[[1, 2, 3], [1, 2, 3]], [[4, 5, 6], [4, 5, 6]]][[1, 2, 3], [1, 2, 3], [4, 5, 6], [4, 5, 6]][1, 2, 3, 1, 2, 3, 4, 5, 6, 4, 5, 6]
2022-03-24 16:05:32
1274
原创 标签平滑+交叉熵
import torchimport torch.nn as nndef CrossEntropyLoss_label_smooth(outputs, targets, num_classes=3, epsilon=0.2): N = targets.size(0) # torch.Size([8, 10]) # 初始化一个矩阵, 里面的值都是epsilon / (num_classes - 1) smoothed_labels = torch.full(size=(N,
2021-11-21 09:50:04
641
1
原创 pytorch加载自己的数据,自定义方式
import torch.nn as nnimport torchimport torch.nn.functional as Ffrom torch.autograd import Variableimport numpy as npfrom numpy import *import randomimport matplotlib.pyplot as pltfrom torch.utils.data import DataLoader,Datasetfrom torchvision imp
2021-05-21 18:14:51
189
原创 opencv读取摄像头采集视频并保存
import cv2cap = cv2.VideoCapture(0)fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter('lianzheng.avi', fourcc, 20.0, (640, 480))while True: ret, frame = cap.read() print(frame.shape) out.write(frame) cv2.imshow('frame', fram
2021-05-18 09:46:34
104260
原创 yolov5训练
首先安装vc++2015 再下载我上传的资源打开文件之后如下用cmd cd到下面文件的路径,再使用python setup.py build_ext --inplace命令安装即可。
2021-01-30 21:39:16
237
原创 Python堆排序
def jiandui(li,low,high): i=low tmp=li[i] j=2*i+1 while j<=high: if j+1<=high and li[j]<li[j+1]: j+=1 if tmp>=li[j]: li[i]=li[j] break else: li[i]=li[j] i=j j=2*i+1 li[i]=tmpli = [i for i in range(100)]import rand
2020-10-27 16:38:40
129
原创 Python选择排序
def xuanze(li): for i in range(len(li)-1): min_loc=i for j in range(i+1,len(li)): if li[j]<li[min_loc]: min_loc=j if min_loc!=i: li[i],li[min_loc]=li[min_loc],li[i]li = [3,2,4,1,5,7,9,6,8,1,2,456,7879,454,12,121,21,15,454,5,545,4545,5,
2020-10-27 10:58:10
99
原创 Python快速排序
def kuaisu(li,l,r): if l<r: mid=function(li,l,r) kuaisu(li,l,mid-1) kuaisu(li,mid+1,r)def function(li,l,r): tmp=li[l] while l<r: while l<r and tmp<=li[r]: r-=1 li[l]=li[r] # li[r]=tmp while l<r and li[l]<=tmp: l+=1
2020-10-27 10:47:49
111
原创 Python冒泡排序
冒泡一def maopao(Li): for i in range(len(li)-1):#拿第i个数与后边的数字逐个比较,所以不需要选到最后一个数字,故len(li)-1 for j in range(i+1,len(li)):#因为拿i下标后的一个元素与i对应数字比较,所以这里j从i+1开始 if li[j]<li[i]:#如果i后的数字有比i下标对应的数字,就交换两者,此时i下标对应的数字是一个更小的数字,直到把最小的数字赋予i下标,此时无序区减少一个数字 li[i],li
2020-10-27 10:40:35
128
原创 Python插入排序
li = [3,2,4,1,5,7,9,6,8]def sort(li): for i in range(1,len(li)): temp=li[i] #因为是插入排序,手中要现有一个数字,然后在抽取一个数字与手中的数字比较, j=i-1 #因为首先抽取的是第二个数字,所以要先于第一个数字比较,也就是下标减一 while j>=0 and temp<li[j]:#当j>=0时说明前面还有数字,所以继续比较,当手里的数字小于与之比较的数值时,还要
2020-10-26 21:07:17
116
原创 注意力机制之CBAM
import torchimport mathimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npclass BasicConv(nn.Module): def __init__(self, in_planes, out_planes, kernel_size, stride=1, padding=0, dilation=1, groups=1, relu=True, bn=True, bias=Fal
2020-09-09 21:16:45
1157
1
原创 cuda9.0+cudnn v7.5.0 +win7+tensorflow-gpu1.12.0+tensorflow-cpu1.12.0安装步骤
先去下载cudnn v7.5.0链接:https://pan.baidu.com/s/1my7kmsEtzewFUQ_a_tPc9A提取码:640g再去下载cuda9.0 win7链接:https://pan.baidu.com/s/1qIFD3Aemut1DejE-NmfR6g提取码:euc9cuda9.0下载完成直接安装就行,一直点下一步第二找到cudnn文件下的这三个文件夹复制粘贴到下面的文件夹里C:\Program Files\NVIDIA GPU Computing Toolkit
2020-09-06 21:33:12
756
3
原创 TXT文件写入方法
year=1list_file = open('%s.txt'%(year), 'w')list_file.write('kl')list_file.close()
2020-07-29 19:56:45
425
原创 getitem len
class Person(object): def __init__(self,persion_list): self.persion_list=persion_list def __getitem__(self, item): return self.persion_list[item] def __len__(self): return len(self.persion_list)body=Person(["Xiuwu","Adn
2020-07-28 18:54:00
156
原创 Keras之ImageDataGenerator(图像生成)函数的应用详解
不去讲那些晦涩难懂的东西,直接上代码第一、图像原图# Plot imagesfrom keras.datasets import mnistfrom matplotlib import pyplot# load data(X_train, y_train), (X_test, y_test) = mnist.load_data()# create a grid of 3x3 imagesfor i in range(0, 9): pyplot.subplot(330 + 1 + i) p
2020-07-16 21:11:31
2149
转载 PyTorch 学习笔记:transforms的二十二个方法
本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial文章目录一、 裁剪——Crop1.随机裁剪:transforms.RandomCrop2.中心裁剪:transforms.CenterCrop3.随机长宽比裁剪 transforms.RandomResizedCrop4.上下左右中心裁剪:transforms.FiveCrop5.上下左右中心裁剪后翻转: transforms.TenC
2020-07-10 16:20:32
912
原创 怎么显示Keras的网络结构和其中的参数
有很多时候我们想要查看自己的网络结构和其中的参数,用以下方式解决可以使用函数plot_model(model, to_file=‘Flatten.png’, show_shapes=True)打印出model的简略信息,从中就可以看出各层的输入输出shape。那么需要安装什么库呢?1,pip install pydot2,pip install pydot-ng3,去官网安装graphviz pip工具安装的不行哦,链接选择msi版本 ,一路next就行,安装之后最好重启一下编译器。
2020-05-23 18:56:10
3543
原创 opencv常用函数总结(三)之形态学转换
opencv常用函数总结之形态学转换(三)import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltimg = cv.imread('j.png',0)#侵蚀kernel = np.ones((5,5),np.uint8)erosion = cv.erode(img,kernel,iterations...
2020-04-04 20:58:59
497
原创 opencv常用函数总结(二)
opencv常用函数总结(二)**按位运算提取图像的一部分这里要学的函数是**cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)**cv2.cvtColor()函数有两个参数(input_image,flag)第一个参数是imread读取的图像,flag为cv2.COLOR_BGR2GRAY为转为灰度,为cv2.COLOR_BGR2HSV是转为HSV。主...
2020-04-04 18:05:21
2034
1
原创 opencv常用函数总结(一)
**opencv常用函数总结(一)**opencv的使用首先需要import cv2,一般还要使用numpy,import numpy as npopencv主要用于对于图像的处理,那么我们首先要学的就是导入图片**读取保存图像**这里我们需要学的函数是cv2.imread(‘input_image’,0)imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片...
2020-04-04 17:11:07
822
原创 setmousecallback的说明
**setmousecallback的说明**void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0)winname:窗口的名字onMouse:鼠标响应函数,回调函数。指定窗口里每次鼠标时间发生的时候,被调用的函数指针。 这个函数的原型应该为void onMouse(...
2020-04-03 19:29:57
2077
原创 Keras中的fit、fit_generator、train_on_batch的用法介绍
首先是fit,是最常用的也是最基础的。**fit() 以固定数量的轮次(数据集上的迭代)训练模型。**fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=...
2020-03-22 11:52:41
9267
1
原创 Python中f的用法和str.format()
在Python3.6之前是r"C:\Users\Administrator\Desktop\Sample{}".format(5)这样用的,并没有f的用法.后来Python3.6才加入了f的用法rf"C:\Users\Administrator\Desktop\Sample{5}"。
2020-03-16 11:26:54
777
在视频分解截取图片.py
2020-10-09
截取电脑屏幕指定区域的图片.py
2020-07-10
CNN卷积神经网络识别手写汉字MNIST数据集.zip
2019-12-21
neural network.py
2019-11-17
仓库温湿度无线远程监测之labview软件数据接受和显示,存储程序
2019-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人