当前位置: 首页 > news >正文

住建部网站资质查询中宏建设集团免费的企业黄页网站

住建部网站资质查询中宏建设集团,免费的企业黄页网站,公司取名三个字推荐,西安网站网站建设文章目录 前言一、读取深度值与图像1、深度值读取2、图像读取 二、深度图可视化1、深度图可视化代码2、深度图可视化结果展示 三、深度图在图像上可视化1、可视化代码2、可视化坐标显示 四、完整代码 前言 kitti数据是一个通用数据,有关kitti的深度图像内容我已有博…

文章目录

  • 前言
  • 一、读取深度值与图像
    • 1、深度值读取
    • 2、图像读取
  • 二、深度图可视化
    • 1、深度图可视化代码
    • 2、深度图可视化结果展示
  • 三、深度图在图像上可视化
    • 1、可视化代码
    • 2、可视化坐标显示
  • 四、完整代码

前言

kitti数据是一个通用数据,有关kitti的深度图像内容我已有博客介绍。这里,我将给出一个工具,用于显示深度值对应像素坐标再图像上,也给出深度值可视化显示内容。

一、读取深度值与图像

很简单,直接使用cv与PIL库可实现数据读取,其调用代码如下:

    path = './data/2011_09_26_drive_0001_sync'index = '0000000005'image_2_path = os.path.join(path, '2011_09_26_drive_0001_sync/2011_09_26/2011_09_26_drive_0001_sync/image_02/data', index + '.png') # 获得图像depth_path = os.path.join(path,'2011_09_26_drive_0001_sync/proj_depth/groundtruth/image_02',index+'.png')groundtruth = depth_read(depth_path)img = get_image(image_2_path)  # 读取图像

1、深度值读取

使用官网提供方法,该方法得到是真实相机坐标系下z轴距离,我会在后面图显示,其代码如下:

def depth_read(filename):# loads depth map D from png file# and returns it as a numpy array,# for details see readme.txtdepth_png = np.array(Image.open(filename), dtype=int)# make sure we have a proper 16bit depth map here.. not 8bit!assert(np.max(depth_png) > 255)depth = depth_png.astype(np.float) / 256.# depth[depth_png == 0] = -1.return depth

2、图像读取

图像是对应的深度图的图像,以相机02为准,其代码如下:

def get_image(img_path):img = cv2.imread(img_path)return img

二、深度图可视化

显然,我们只需使用深度图信息即可实现。

1、深度图可视化代码

直接使用plt可实现,其代码如下:

def show_depth(groundtruth):# import numpy as np# import matplotlib.pyplot as plt# 假设我们有深度数据存储在一个名为depth_data的NumPy数组中。# 这个数组应该具有与你的图像相同的形状。# 转换深度数据到0-1范围内的浮点数normalized_depth = groundtruth.astype(np.float32) / groundtruth.max()# 创建一个颜色映射,从蓝色(最小值)到黄色(最大值)cmap = plt.get_cmap('viridis')# 使用颜色映射创建一个新的图像color_image = cmap(normalized_depth)# 删除alpha通道(如果有的话)if color_image.shape[-1] == 4:color_image = color_image[..., :3]# 显示新的彩色图像plt.imshow(color_image)plt.colorbar()plt.show()

2、深度图可视化结果展示

在这里插入图片描述

三、深度图在图像上可视化

1、可视化代码

明显,我目的是要将对应深度图值显示在对应图像上,其代码如下:

def show_depth2img(img,groundtruth,interval_x=100, interval_y=20):"""将深度图对应深度图值按照约定行与列像素打印到图像上方法:interval_x=100:x坐标按照多少像素取值,决定x方向间隔:interval_y=20:y坐标按照多少像素取值,决定y方向间隔:param img: 原始图像内容:param groundtruth: 深度图值:return: 返回一个显示深度图值在图像上"""h, w = img.shape[:2]# interval_x, interval_y = 100, 20  # w与h相隔多少像素显示内容numpy_y, numpy_x = int(h / interval_y), int(w / interval_x)for i in range(numpy_x):for j in range(numpy_y):x = int(interval_x * i)y = int(interval_y * j)value = groundtruth[y, x]img = draw_circle_coord(img, coord=(x, y), value=value)

2、可视化坐标显示

在这里插入图片描述
你会发现有很多值是0,这是正常的。你也发现数值确实也是kitti官网说的,是真实距离坐标,确实是这样的,如图显示。

四、完整代码

最后,我给出一个完整代码,可以直接执行,其代码如下:

import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
def get_image(img_path):img = cv2.imread(img_path)return img
def show_img(img):plt.imshow(img)plt.show()from PIL import Imagedef depth_read(filename):# loads depth map D from png file# and returns it as a numpy array,# for details see readme.txtdepth_png = np.array(Image.open(filename), dtype=int)# make sure we have a proper 16bit depth map here.. not 8bit!assert(np.max(depth_png) > 255)depth = depth_png.astype(np.float) / 256.# depth[depth_png == 0] = -1.return depthdef show_depth(groundtruth):# import numpy as np# import matplotlib.pyplot as plt# 假设我们有深度数据存储在一个名为depth_data的NumPy数组中。# 这个数组应该具有与你的图像相同的形状。# 转换深度数据到0-1范围内的浮点数normalized_depth = groundtruth.astype(np.float32) / groundtruth.max()# 创建一个颜色映射,从蓝色(最小值)到黄色(最大值)cmap = plt.get_cmap('viridis')# 使用颜色映射创建一个新的图像color_image = cmap(normalized_depth)# 删除alpha通道(如果有的话)if color_image.shape[-1] == 4:color_image = color_image[..., :3]# 显示新的彩色图像plt.imshow(color_image)plt.colorbar()plt.show()def draw_circle_coord(image,coord=None,value=None):if coord is not None and value is not None:coord = tuple(coord)image = cv2.circle(image, coord, 5, (255, 0, 0), -1)value = round(value,2)image = cv2.putText(image, str(value)+'m', coord, cv2.FONT_HERSHEY_COMPLEX, 0.6, (0, 0, 255), 1, cv2.LINE_AA)return imagedef show_depth2img(img,groundtruth,interval_x=100, interval_y=20):"""将深度图对应深度图值按照约定行与列像素打印到图像上方法:interval_x=100:x坐标按照多少像素取值,决定x方向间隔:interval_y=20:y坐标按照多少像素取值,决定y方向间隔:param img: 原始图像内容:param groundtruth: 深度图值:return: 返回一个显示深度图值在图像上"""h, w = img.shape[:2]# interval_x, interval_y = 100, 20  # w与h相隔多少像素显示内容numpy_y, numpy_x = int(h / interval_y), int(w / interval_x)for i in range(numpy_x):for j in range(numpy_y):x = int(interval_x * i)y = int(interval_y * j)value = groundtruth[y, x]img = draw_circle_coord(img, coord=(x, y), value=value)if __name__ == '__main__':path = './data/2011_09_26_drive_0001_sync'index = '0000000005'image_2_path = os.path.join(path, '2011_09_26_drive_0001_sync/2011_09_26/2011_09_26_drive_0001_sync/image_02/data', index + '.png') # 获得图像depth_path = os.path.join(path,'2011_09_26_drive_0001_sync/proj_depth/groundtruth/image_02',index+'.png')groundtruth = depth_read(depth_path)img = get_image(image_2_path)  # 读取图像show_depth(groundtruth)  # 显示深度图img = show_depth2img(img, groundtruth, interval_x=100, interval_y=20)cv2.imwrite('out_dir/draw_coord.png',img)show_img(img)
http://www.hkea.cn/news/910597/

相关文章:

  • 携程网站建设进度及实施过程网络营销的缺点及建议
  • 石家庄网站建设哪家专业中国联通腾讯
  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱
  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语
  • 网站备案信息查询系统软文发布平台媒体
  • 泊头哪给做网站的好制作网页的教程
  • 漳州建设银行网站首页在百度上打广告找谁
  • 网站免费建站k网络营销策划方案书
  • 网站建设类公网店推广的作用
  • 安平做网站除了百度指数还有哪些指数
  • 做网站公司 蓝纤科技知乎怎么申请关键词推广
  • 临沂免费做网站发表文章的平台有哪些
  • 网站推广的方式包括哪些广西网站建设制作
  • 杭州营销网站建设东莞网站建设哪家公司好
  • 企业做营销型网站手机如何制作网页
  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询
  • 龙口市规划建设局网站查询收录
  • 学校网站建设注意什么东莞网站营销推广
  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理