自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python opencv 深度图批量生成彩色图

立体匹配生成的深度图转为彩色图,这样特征更明显,便于人眼对比出效果。

2023-01-06 10:34:32 703 1

原创 Ubuntu系统装机流程(显卡驱动、cuda、cudnn、搜狗输入法、anaconda、pycharm)

ubuntu系统装机,包含显卡驱动、cuda、cudnn、搜狗输入法、anaconda、pycharm的安装和配置。

2022-12-17 16:17:56 2846 1

原创 python opencv 读取图像中不为0的像素值

使用情况用opencv读取一张图的不为零的像素值,看看到底值是多少。需要注意,一张图可能是单通道的8位图,也可能是24位彩色图,极少见是8位彩色图。需要按照对应的模式去读,不然读出来的值是不一样的。代码import cv2im1 = cv2.imread('/home/5.png', 1) # 1是按三通道读,0是按照单通道读print(im1.shape)m, n, p = im1.shape[0], im1.shape[1], im1.shape[2]for i in range(

2021-11-10 18:41:11 5600 2

原创 docker ubuntu安装

首先用下面的命令更新apt 包的索引:sudo apt-get update把Docker仓库加进到apt里,反斜杠\代表一行,只是换行写更清晰:sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common添加Docker的官方GPG密钥:curl -fsSL https://download.d

2021-11-01 09:49:02 263

原创 python 深度学习合并推理出来的txt标签,并生成json

天智杯竞赛格式要求要求以一个json文件,存储所有结果。目前我们推理完是生成很多txt文档,而且是拆图之后的,需要将txt中的标签信息转换为大图的,再合成一个json文件,代码如下:import osimport jsonimport numpy as np'''这个程序是用来合infer推理后生成的txt,因此标签有置信度的分数,同时类别标签在开头'''input_dir_path = '/home/rtx2080ti/GeTu/AllTxt/Result'

2021-10-29 21:21:15 711

原创 docker 简单命令 (提交深度学习比赛的程序)

使用情况docker的很多命令都需要权限,如果命令不成功,就前面加上sudo,在尝试一下。首先查看docker 版本sudo docker version之后查看现有的镜像sudo docker info发现有的镜像tag名字为none如下图有些为none,要改一下名字那么需要重新命名,命令也很简单,只要image id是你要改的就可以。sudo docker tag IMAGE ID(你要重命名的image id) REPOSITORY:TAG (你想要起的名字)改完之后结果

2021-10-24 15:50:35 222

原创 python 深度学习txt标签合并

使用情况说明深度学习进行目标检测任务的训练,有些图片很大,就要将图片和标签拆分了,扔到网络里训练。出结果进行预测推理的时候也是一样,将大图拆成小图,送到网络里进行预测,会生成txt标注文件,这时的标注文件也是相对与小图的坐标的,要提交结果的时候,需要将小图的坐标转换成大图的坐标。即,需要将txt进行合并,下面是合并txt的程序,可以和拆分txt和图片的文件一起,对照着看。程序import os'''这个程序是用来合infer推理后生成的txt,因此标签有置信度的分数,同时类别标签在开头''

2021-10-23 15:29:40 432

原创 deeplabv3+pytorch补充教程

主要参考:https://blog.csdn.net/qq_39056987/article/details/106455828?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163283720916780265498868%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=16328372091678026549

2021-09-28 22:09:41 394

原创 PASCAL VOC2012类型的数据集生成train.txt\val.txt等文件

PASCAL VOC 2012图像分割经常要用的到这个数据集,我是自己做的数据集,但也仿照了PASCAL VOC2012的格式,在数据中,需要把所有图片放在一个文件夹中,mask放在另一个文件夹中,然后train.txt等文件里面有很多文件名,决定了哪些图片用于train,哪些用于val。要生成的txttrain.txtval.txttest.txttrainval.txt(这个是train和val放在一起的)分的思路是从全部文件中,先分出trainval,然后再从trainval中,分出va

2021-09-23 11:24:34 3217 2

原创 python 批量改文件名且jpg改为png

python 改文件名在进行深度学习的时候,需要将训练集中的文件名进行批量的更改,数据量大,肯定不能自己手动更改,于是就需要手动写个脚本。import os 用其中的os.rename命令就可以完成名字的更改,通常我会把文件改为数字名,如果需要改拓展名,做个切片的操作,也可以更改拓展名。图片拓展名的更改(从jpg格式到png格式)但如果是更改图片的拓展名,这里有个问题。我将jpg格式的图片改了名为png格式后,发现只是改了拓展名,在ubuntu中并不能打开这个文件,系统显示,这时的图片仍然不是png

2021-08-28 18:38:08 859

原创 python 删除数据集中的负样本

负样本在进行深度学习的过程中,如果图片过大,要进行拆图,将图片拆成小一点尺寸的,同时标注信息也要相应的拆了,那么就可能出现很多张图片,里面其实没有目标,是空的,相应的标注文件也是空的,我定义为这样的数据为负样本下面是一段程序,将负样本从数据中删除,即,只保留正样本,代码如下:如果要删除正样本,只需要将逻辑是改成逻辑非命令即可!代码import osdef delete_empty_txt(out_txt_floder, out_img_floder): txt_list = os.li

2021-08-26 11:30:19 569

原创 python txt文件读取和改写

读写txt文件中的字符串在进行一些数据处理的过程中,需要进行txt相关的数据操作。如下图所示,我在进行深度学习训练的时候,一个txt格式的标注文件内容如下:每行有一个标注,第一个字符串是类别,其他八个参数是位置参数,并且用逗号分隔开但这个数据集并不是YOLOv5的格式,因此需要转换一下,将类别放到最后,同时将逗号换成空格。更改完的txt文件如下图所示:只需要使用简单的命令,利用split命令读取一行的数据为字符串即可,注意每行末尾其实有个/n换行符,需要在读写的时候去掉,将所有内容存成字符串

2021-08-25 16:01:18 2404

原创 python 随机挑选负样本

python 随机挑选负样本在进行深度学习训练时,第一次训练可以只训练有目标的正样本图像,之后训练,要逐渐加入负样本,调整模型的效果。因此需要从全是负样本的文件中挑选一定数目的负样本,参与训练。第二次进行训练,我选择添加的负样本的数目为正样本的2倍。跟划分数据集是一摸一样的操作,设定好要挑的负样本的数目,程序把文件从一个文件夹自动移到另一个文件夹。当然图片和标注文件都会对应移动好。使用方便,只需要该负样本数目,和对应的几个路径,就能立马使用。代码import osimport randomi

2021-08-25 15:35:53 754

原创 python 划分数据集

python 划分数据集深度学习数据集准备工作划分比例的问题代码深度学习数据集在进行深度学习的数据训练之前,总是要先进行 数据集的划分,将数据集划分为训练集、测试集和验证集,即分为train、test和val三个文件夹。在网上看了一些数据集划分的代码,90%是用不了,很多都是只划分了图像文件,根本不划分相应的标注文件,于是自己写了一个简单的脚本,同时将图片和标注都对应划分好。准备工作在进行数据集划分之前,首先先建立好相应的文件夹,分为train、test和val三个文件。每个文件夹中,又包含ima

2021-08-25 15:12:17 9335 12

原创 python openCV灰度图(深度图)转伪彩色

在学习立体视觉过程中,视差图会以灰度图的形式表现出来,然而在论文中,为了便于观看,增强图像的效果,常常会需要转换成伪彩色。在python中利用opencv的colormap函数完成转化程序如下:import cv2import os.pathimport globimport numpy as npfrom PIL import Imagedef convertPNG(pngfile, outdir): # 读取灰度图 im_depth = cv2.imread(pngfile) #

2021-07-29 21:01:22 10839

原创 python读取图片的exif信息

python读取图片的exif信息图片的exif信息exifread第三方库相机的内参矩阵读取图片exif信息的代码图片的exif信息图片信息也是存在元数据的,网上官方称之为exif(exchange image file format),中文意思是交换图像文件格式。每张图片都包含EXIF信息,它是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。要注意的是有些图片是没有元数据的,比如压缩过的图片,元数据被破坏,无法探测,所以图片一定要是原图。EXIF可以附

2021-07-14 11:28:43 2354 3

原创 python opencv图片畸变校正remap

相机标定后,得到了相机的内外参数,和畸变系数这时,处理每一张图像其实应该进行畸变校正和重映射remap原理是根据相机标定后的参数生成一个_mapx1和_mapy1的索引表,将每张图像x1 y1对照索引表重新映射,其他没映射到的点就差值就行。其实remap就是一个重映射,然后在空隙处差值的函数。下面的程序就是一段remap函数,相机参数都已经写死了,只需更改路径和图片尺寸就行就行,程序简单,直接把一个文件夹的图片都remap了,生成的图片存放在一个自动建的新的文件夹中(自己设定的名字)。注:我这组内参

2021-05-26 16:55:38 3454 1

原创 python图片RGBA转RGB

在图像处理中,常常需要指定位数的图片当图片的位数不对时,仅是更改图片的后缀名,并不能解决问题。需要将图片的色彩空间转换才可以。下面这是一段python的用openCV进行色彩变换的程序,可以实现32位的RGBA转24位的RGB通常RGBA是png的,而RGB是jpg的在openCV中,需注意RGB这几个参数的顺序要对应好,可能你本身的图片是BGR的顺序,如果不对应好,转变位数后,颜色会发生变化。程序如下:import osimport cv2'''png格式常常是32位的RGBA格式,A代表

2021-05-25 00:50:25 5756 3

原创 读取点云数据并显示

读取点云并显示在进行完双目视觉的图象采集后,就会进行立体匹配,进而得到一张深度图。利用RGB彩色和Depth深度图,结合相机的内参,可以将RGB-D图象转换出点云数据。点云数据的读取用下面这几行代码实现。转换点云程序和点云数据也会一起在别的笔记里传上来。用到了open3d库,采用了两种方法,一种一行代码就可以实现,一种可以慢慢调节。代码如下:import open3d as o3dimport numpy as np# 读取点云文件pcd = o3d.io.read_point_cloud(

2021-03-23 10:45:10 1151

原创 用python将文件内所有图片转为灰度图并保存

一个文件夹中有多张彩色度,或者24位的灰度图,需要批量的保存为8位的灰度图因为对python中地址相关指令的不熟悉,整这么个小程序都用了很久,也发现csdn中,有很多人的程序都不能用,服了。在下面放上两个版本的,想法都不同,但作用一样,且一个是在原文件目录保存,一个是保存在新的文件夹下,更改路径就可以使用了。没有加图像显示,不需要显示,需要显示的可以自己叫cv.imshow自己看。需要注意:1:地址中到底用“/”还是“\”。2:不可以写成file_pathname + ‘/’ + filenam

2020-11-27 19:46:15 9031 4

原创 双目相机标定图片拍摄规范

双目相机标定图片拍摄规范文章目录双目相机标定图片拍摄规范前言一、双目相机的布置二、标定板的选用三、图片采集的规范四、进行标定的软件(选看)五、靶标布置(选看)总结前言相机标定是进行视觉测量和定位的基础工作之一,标定参数准确与否直接关系到整个系统的精度,标定结果将影响后续进行其他解算。笔者根据自己在双目相机项目中的标定经验,和网络上查询到的大家对标定图片采集的意见进行了总结,现分享如下:一、双目相机的布置(1)要保证两个相机都是水平放置的,要固定在同一基准平面上,不能让相机有翻滚角,必须保证相机

2020-11-25 23:04:32 7221 8

原创 20201119【笔记】python中调用dll,但未找到的问题

在python中调用dll,但未找到,之前已经在系统环境变量path中进行配置,路径也正确仍然失败。首先是发现缺少头文件,调用dll需要用到ctypes库,安装好库之后,还需在前面import一下。代码如下:import ctypes 然后运行仍然失败,找不到dll,报错结果如下图:可以看到确实是没找到dll模块,怀疑是因为路径中含有中文的原因,虽然已经是utf8,但可能存在解码的问题。这里看了这位作者得文章:https://blog.csdn.net/fangkailove/artic

2020-11-19 11:13:32 3086

原创 读取相机图像并保存图像

在进行双目视觉实验时,首先需要进行双目相机的标定、校正畸变等操作,标定是第一步,也是非常重要的一步,需要现标定单目相机(摄像头),再进行双目标定,如果有其他设备,如雷达之类的,再标定双目+雷达,最后和汽车或者机械臂标定在一起。 为了实现标定,需要先存取含有标定板的棋盘格图像,在这里先码一个简单的读取图像并保存的代码,供大家学习使用。代码如下:import cv2'''读取相机图像并保存'''camera = cv2.VideoCapture(0) # cam.

2020-11-17 09:00:29 629

原创 20201024椭圆检测EDCircles学习笔记

论文:《EDCircles: A real-time circle detector with a false detection control 》(2013)开源代码:github开源代码https://github.com/CihanTopal/ED_Lib库:OpenCV3.4.1一、实时边缘/边缘检测器(ED)1.输入灰度图,通过通过诸如非最大抑制、滞后阈值化、侵蚀等操作来消除非边缘像素来工作。2.识别图像中的一组锚点。3.输出二进制边缘图,还输出一组边缘线段,每个边缘线段是一个

2020-10-24 16:02:57 1998

原创 20200821【笔记】3D视觉介绍

3D视觉就是现在比较热门的概念,其实就是深度相机获得图像的深度信息。应用场景还是和以前一样多,今天补充一种激光三角测量方法,这一方法在论文中也经常出现,但是经常和结构光技术混为一谈,其实还是有所区分的。几种获得深度信息的方法(3D视觉分类)比较如下图:激光三角测量法:它基于光学三角原理,根据光源、物体和检测器三者之间的几何成像关系,来确定空间物体各点的三维坐标 。原理图如下:通常用激光作为光源,用CCD相机作为检测器。具有结构光3D视觉的优点,精准、快速、成本低。不过由于根据三角原理计算,被测

2020-08-21 23:29:48 1170

原创 Intel RealSense D455 深度相机

2020年6月17日发布的相机:Intel RealSense D455 是 Intel RealSense D435i 的升级版。外观与D435i基本一样,都包含IMU,摄像头具体参数未知,适用范围达到6米,精度也要更好,具体是否为SL红外不确定,新闻只说是D400的升级版,但我推测为D435i的升级版。价格为239美元(约1700元),目前为预售阶段。外观图如下:使用Intel RealSense SDK 2.0切换到D455非常容易,开发时间几乎为零。D455将深度传感器之间的距离扩展到95mm,

2020-08-10 23:15:22 9069 2

原创 浙大版《C语言程序设计(第3版)》题目集习题4-5 换硬币 (20分)

需要注意的是,每种硬币都必须有一个,且结果需要换行;#include <stdio.h>int main(){ int a,b,c,total,count,x; //a,b,c对应3种面额; count=0; //不初始化,会错误,必须初始化; scanf("%d",&x); //需要嵌套两层递减的for.

2020-06-19 11:18:41 363

原创 浙大版《C语言程序设计(第3版)》题目集习题4-4 特殊a串数列求和 (20分)

这个题比较简单,设置好item就行,一个循环就可完成。#include <stdio.h>int main(){ int a,n,i,item=0; //item必须初始化为0; double s; //不初始化也可以,同时s也可以定义为int型; scanf("%d %d", &a, &n); for(i=0;i<n;i++){ item=10*item.

2020-06-17 14:50:15 189

原创 浙大版《C语言程序设计(第3版)》题目集习题4-3 求分数序列前N项和 (15分)

这题比较简单,数值传递的时候,搞个中间变量储存分母的值即可。#include <stdio.h>int main(){ int i,n; double item,sum,a=1,b=2,c; scanf("%d",&n); for(i=1;i<n+1;i++){ item=b/a; sum+=item; c=a; a=b; b=a+c; } pri.

2020-06-07 12:10:00 280

原创 浙大版《C语言程序设计(第3版)》题目集习题4-2 求幂级数展开的部分和 (20分)

求阶乘的函数定义千万不能定义为int,不然会一直出错,我就是这个地方卡了很久,自己也没发现…#include <stdio.h>#include <math.h>double fact(int x) { //用递归函数求阶乘;函数定义为double型; if (x == 0 || x == 1) { return 1; } else { return x * fact(x - 1).

2020-06-06 16:50:41 337

原创 浙大版《C语言程序设计(第3版)》题目集习题4-1 求奇数和 (15分)

#include <stdio.h>int main(){ int n,sum=0; //sum不用初始化也正确; do{ //不确定循环次数,选用do-whlie循环; scanf("%d",&n); if(n<=0){ //do-whlie内部常常需要break,且需要前置; break; } .

2020-05-13 17:15:34 534

原创 浙大版《C语言程序设计(第3版)》题目集练习4-11 统计素数并求和 (20分)

这里用翁恺老师讲的判断素数的算法,效率更高;#include <stdio.h>#include <math.h> //要用sqrt,所以要加;int isPrime(int x){ int i,ret; //这部分是翁恺老师讲的素数算法; if(x<2){ //只用判断到2到x的平方根这部分存在不存在1个可以整除的; .

2020-05-13 16:33:14 413

原创 浙大版《C语言程序设计(第3版)》题目集练习4-10 找出最小值 (20分)

这道题,也可以选择用冒泡排序,但是那样是得到完整顺序,对于本题有些浪费,我们不用知道那么多大小关系,因此只要存好第一个数,之后做个遍历就好,有更小的就存下来。#include <stdio.h>int main(){ int n,i,temp,min; //temp用作存储临时的数据; scanf("%d",&n); for(i=1;i<n+1;i++){ scanf("%d",&temp); i.

2020-05-13 15:26:12 301

原创 浙大版《C语言程序设计(第3版)》题目集练习4-7 求e的近似值 (15分)

#include <stdio.h>int main(){ //用递归算法求阶乘,空间复杂度太大,容易溢出; int n,m,i; //因此选择双层循环法; double sum=1.0,a; //a表示与n有关的项,不能在这里初始化为0; scanf("%d",&n); for(i=1;i<n+1;i++){ //用双重循环求阶乘与n+1项和;.

2020-05-13 12:59:05 287

原创 浙大版《C语言程序设计(第3版)》题目集练习4-6 猜数字游戏 (15分)

#include <stdio.h>int main(){ int i,number,random,time,right=0; //right表示是否成功猜中; scanf("%d %d",&random,&time); for(i=1;i<=time;i++){ //控制猜测次数一定小于等于n; scanf("%d",&number); if(number<0).

2020-05-13 12:04:44 715

原创 浙大版《C语言程序设计(第3版)》题目集练习4-3 求给定精度的简单交错序列部分和 (15分)

#include <stdio.h> //选择合适的循环是重点;int main(){ double eps,x,n=1,sum=0,flag=1; //如果将n设置为int,则会出错; scanf("%lf",&eps); do{ //条件循环选择do-while循环; x=1/n; sum+=flag*x; flag.

2020-05-12 22:56:36 323

原创 浙大版《C语言程序设计(第3版)》题目集习题3-5 三角形判断 (15分)

求abc边长的时候,如果得到平方的方法不对,系统会报“实数错误”,请注意。#include <stdio.h>#include <math.h>int main(){ float x1,x2,x3,y1,y2,y3; float L,A,a,b,c,p; scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3); //确定三边abc边长; a=.

2020-05-12 20:55:44 423

原创 浙大版《C语言程序设计(第3版)》题目集习题3-4 统计学生成绩 (15分)

#include <stdio.h>int main(){ int n,grade,i,a=0,b=0,c=0,d=0,e=0; scanf("%d",&n); for(i=1;i<n+1;i++){ scanf("%d",&grade); if(grade>=90){ a++; }else if(grade>=80&&grade<90){.

2020-05-12 18:57:50 375

原创 浙大版《C语言程序设计(第3版)》题目集习题3-3 出租车计价 (15分)

我做的比较麻烦,就直接用分段函数思想,全部列出来,就结束了。#include <stdio.h>int main(){ int time; float distance,money; scanf("%f %d",&distance,&time); if(distance<3){ printf("10\n"); }else if(distance>=3&&distance<10){ .

2020-05-12 16:41:51 509

原创 浙大版《C语言程序设计(第3版)》题目集习题3-2 高速公路超速处罚 (15分)

这里注意百分号通过%%输出,且超速比例p最好设置为浮点数,然后保留到个位。`#include <stdio.h>int main(){ int a,b; float p; scanf("%d %d",&b,&a); if(b>a){ p=(b-a)/(float)a*100; if(p>=10&&p<50){ printf("Exceed %.0lf%.

2020-05-12 16:06:08 429

深度图转3D点云python

深度图转3D点云python

2023-05-05

Ubuntu电脑装机流程

(1)安装Ubuntu18.04系统 (2)安装显卡驱动 (3)安装Cuda (4)安装Cudnn (5)安装搜狗输入法 (6)安装Anaconda (7)安装Pycharm社区版

2022-12-17

空空如也

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

TA关注的人

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