mvtec3d

news2024/11/18 11:28:23

以bagel为例,其中有calibration、

bagel			# 百吉圈(硬面包)
	calibration
		camera_parameters.json
	test
		combined
			gt	# 缺陷部位的分割剪影png
			rgb	# 原图png
			xyz	# tiff
		contamination	# 污染物
			同上
		crack
			同上
		good
			同上		
		hole
			同上		
	train
		good
			rgb
			xyz
	validation
		good
			同train
	class_ids.json
		

camera_parameters.json

{
  "camera_type": "area_scan_division",
  "focus": 0.0103431,
  "kappa": -2205.03,
  "sx": 3.74983e-06,
  "sy": 3.75e-06,
  "cx": 252.046,
  "cy": 450.07,
  "image_width": 800,
  "image_height": 800
}

class_ids.json如下
在这里插入图片描述
其余类别

cable_gland	缆线接头,缺陷:弯曲、末端破裂或者头部凹陷、洞、螺纹损坏
carrot	胡萝卜,缺陷:污染、裂纹、割痕、洞
cookie	饼干
dowel	暗榫(识图的话应该叫塑料膨胀管)
foam	鸡蛋托盘
peach
potato
rope	绞绳,缺陷:污染、裂痕、蓬松
tire

顺便记一下在gpt那问到的处理tiff的代码,可能用到?

import tifffile as tiff

# Attempt to read the TIFF file using tifffile
try:
    tiff_data = tiff.imread(file_path)
    # Display the shape of the array to understand its dimensions
    tiff_data_shape = tiff_data.shape
except Exception as e:
    tiff_data_shape = str(e)

tiff_data_shape

(800, 800, 3)

要从这种类型的图像中生成点云,我们可以遵循以下步骤:

将图像转换为灰度图。 遍历每个像素,使用其 x 和 y 坐标以及灰度值(作为 z 坐标)来生成点云。
我将进行这些转换并提供一个点云数据的示例。 ​​

# Convert the image to grayscale
gray_image = np.mean(tiff_data, axis=2)

# Generate point cloud data 
points = [] 
for y in range(gray_image.shape[0]):
    for x in range(gray_image.shape[1]):
        z = gray_image[y][x]  # Grayscale value as height
        points.append([x, y, z])

# Convert to numpy array for better handling 
point_cloud = np.array(points)

# Show the shape of the point cloud and a small sample of the data 
point_cloud_shape = point_cloud.shape 
point_cloud_sample = point_cloud[:5]  # First 5 points as a sample

point_cloud_shape, point_cloud_sample 
((640000, 3),  
array([[0. , 0.        , 0.14262693],
        [1.        , 0.        , 0.14268805],
        [2.        , 0.        , 0.14277673],
        [3.        , 0.        , 0.14286469],
        [4.        , 0.        , 0.14295126]]))

成功将图像转换为点云数据。生成的点云由 640,000 个点组成,每个点有三个坐标:x, y, 和 z。
这些坐标中,x 和 y 是像素的位置,而 z 是基于灰度值的高度(或深度)。

现在你可以使用 CloudCompare、MeshLab 或其他点云可视化工具来查看和分析这些数据。如果你选择使用 Python 进行可视化,可以使用 matplotlib、plotly 或类似库来创建三维散点图。

dl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1338449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实现在云服务器ECS实例上绑定和解绑EIP

目录 前言 准备云服务器ECS实例 购买弹性公网IP 绑定公网IP到云服务器 测试通过弹性公网IP访问服务器 绑定EIP到第二台服务器 测试通过弹性公网IP访问服务器 前言 打算在杭州K区和杭州G区部署两台ECS云服务器,然后在其上部署不同的网站页面,购买E…

Java毕业设计—springboot健身房管理系统

一、项目背景介绍: 随着人们生活水平的提高和健康意识的增强,健身行业逐渐兴起并迅速发展。而现代化的健身房管理系统已经成为健身房发展的必备工具之一。传统的健身房管理方式已经无法满足现代化健身房的需求,需要一种更加高效、智能、安全…

C语言——字符函数和字符串函数(三)【strtok,strerror,perror】

📝前言: 上一篇文章C语言——字符函数和字符串函数(二)对字符函数和字符串函数strstr,strcmp和strncmp进行了一定的讲解 这篇文章主要讲解以下函数的用法: 1,strtok 2,strerror 3,pe…

线程学习(3)-volatile关键字,wait/notify的使用

​ 💕"命由我作,福自己求"💕 作者:Mylvzi 文章主要内容:线程学习(2)​​​​ 一.volatile关键字 volatile关键字是多线程编程中一个非常重要的概念,它主要有两个功能:保证内存可见性…

如何配置TLSv1.2版本的ssl

1、tomcat配置TLSv1.2版本的ssl 如下图所示&#xff0c;打开tomcat\conf\server.xml文件&#xff0c;进行如下配置&#xff1a; 注意&#xff1a;需要将申请的tomcat版本的ssl认证文件&#xff0c;如server.jks存放到tomcat\conf\ssl_file\目录下。 <Connector port"1…

MyBatis动态SQL(常用标签)

目录 标签--if 标签--trim 标签--where 标签--set 标签--foreach 和标签--sql和include 根据需求&#xff0c;动态拼接SQL&#xff0c;下面的标签示范使用xml的方式演示。 <if>标签--if 注解&#xff1a; 1.要把全部的SQL放在script标签下 2.使用if标签 可以观…

15-网络安全框架及模型-BLP机密性模型

目录 BLP机密性模型 1 背景概述 2 模型原理 3 主要特性 4 优势和局限性 5 困难和挑战 6 应用场景 7 应用案例 BLP机密性模型 1 背景概述 BLP模型&#xff0c;全称为Bell-LaPadula模型&#xff0c;是在1973年由D.Bell和J.LaPadula在《Mathematical foundations and mod…

PLC-IoT 网关开发札记(1):存档和分发 Android App

开篇记 PLC-IoT 网关是作者开发的产品&#xff0c;根据客户需求&#xff0c;立项开发手机 App&#xff0c;为用户提供一种方便、直观、友好的设备操控方式。网关运行的是嵌入式 Linux 操作系统&#xff0c;计划通过某一种通信协议&#xff08;例如 HTTP&#xff0c;MQTT或者 T…

微信小程序预览pdf,修改pdf文件名

记录微信小程序预览pdf文件&#xff0c;修改pdf名字安卓和ios都可用。 1.安卓和苹果的效果 2.需要用到的api 1.wx.downloadFile wx.downloadFile 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求&#xff0c;返回文件的本地临时路径 (本地路径)&#xff0c;单次下载…

2024年元旦节放假通知

致尊敬的客户以及全体同仁&#xff1a; 旧岁已展千重锦&#xff0c;新年再进百尺竿。在这辞旧迎新之际&#xff0c;易天光通信提前祝您元旦快乐&#xff01;生意兴隆&#xff0c;身体健康&#xff0c;万事如意&#xff01;根据国家法定假期的规定&#xff0c;并结合公司实际情…

C# 使用Pipelines处理Socket数据包

写在前面 在上一篇中对Pipelines进行简单的了解&#xff0c;同时也留下了未解的问题&#xff0c;如何将Pipelines类库运用到Socket通讯过程中来解决粘包和分包。链接地址如下&#xff1a; 初识System.IO.Pipelines https://rjcql.blog.csdn.net/article/details/135211047 这…

嵌入式单片机的存储区域与堆和栈

一、单片机存储区域 如图所示位STM32F103ZET6的参数&#xff1a; 单片机的ROM&#xff08;内部FLASH&#xff09;&#xff1a;512KB&#xff0c;用来存放程序代码的空间。 单片机的RAM&#xff1a;64KB&#xff0c;一般都被分配为堆、栈、变量等的空间。 二、堆和栈的概念 …

深入探索Spring Boot的核心功能:快速构建原生程序响应式处理数据(文末送书)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 写在前面参与规则 ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论…

【linux】Linux管道的原理与使用场景

Linux管道是Linux命令行界面中一种强大的工具&#xff0c;它允许用户将多个命令链接起来&#xff0c;使得一个命令的输出可以作为另一个命令的输入。这种机制使得我们可以创建复杂的命令链&#xff0c;并在处理数据时提供了极大的灵活性。在本文中&#xff0c;我们将详细介绍Li…

什么是焊点保护胶?它的作用是什么

焊点保护胶是一种用于电子元件焊点和连接处的保护的特殊胶水。它主要作用是提供以下几点的保护和增强功能&#xff1a; 防腐蚀保护 电子元件的焊点容易受到环境中的湿度、化学物质和其他腐蚀性因素的影响。焊点保护胶能够形成一层防护膜&#xff0c;减少腐蚀的风险&#xff0c…

苏州科技大学计算机817程序设计(java) 学习笔记

之前备考苏州科技大学计算机&#xff08;专业课&#xff1a;817程序设计&#xff08;java&#xff09;&#xff09;。 学习Java和算法相关内容&#xff0c;现将笔记及资料统一整理归纳移至这里。 部分内容不太完善&#xff0c;欢迎提议。 目录 考情分析 考卷题型 刷题攻略…

Typora使用PicGo+Gitee上传图片报错403 Forbidden

Typora使用PicGoGitee上传图片报错403 Forbidden Typora使用PicGoGitee上传图片&#xff0c;上传失败了&#xff0c;错误信息如下 打开PicGo的日志文件查看&#xff0c;可以看到错误详情如下 换了一个插件github-plus重新配置&#xff0c;解决了这个问题 再打开日志查看&…

vue+element+springboot实现多张图片上传

1.需求说明 2.实现思路 3.el-upload组件主要属性说明 4.前端传递MultipartFile数组与服务端接收说明 5.完整代码 1.需求说明 动态模块新增添加动态功能,支持多张图片上传.实现过程中对el-upload组件不是很熟悉,踩了很多坑,当然也参考过别的文章,发现处…

浅谈互联网架构演变

更好的阅读体验 \large{\color{red}{更好的阅读体验}} 更好的阅读体验 前言 可以将某个项目或产品的架构体系按照如下方式分层&#xff1a; 业务层面&#xff1a;项目业务体系技术层面&#xff1a; 数据架构&#xff1a;数据持久层策略应用架构&#xff1a;应用层的实现方式 …

HBase深度历险 | 京东物流技术团队

简介 HBase 的全称是 Hadoop Database&#xff0c;是一个分布式的&#xff0c;可扩展&#xff0c;面向列簇的数据库&#xff0c;是一个通过大量廉价的机器解决海量数据的高速存储和读取的分布式数据库解决方案。本文会像剥洋葱一样&#xff0c;层层剥开她的心。 特点 首先我…