mvtec3d

以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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国人事考试网公布多项考试成绩:注安、一造在列

12月29日,中国人事考试网公布多项职业资格考试成绩,包括大家心心念念想的注册安全工程师、一级造价工程师考试成绩,公告发布的今天,考生即可登录中国人事考试网查询考试成绩。 较早发布的是注册安全工程师考试成绩(成绩…

Python经典游戏 唤醒你童年记忆

这些游戏你玩过几个&#xff1f; 1.贪吃蛇2.吃豆人3.加农炮4.四子棋5. Fly Bird<font color #f3704ab>6.记忆&#xff1a;数字对拼图游戏&#xff08;欢迎挑战&#xff01;用时&#xff1a;2min&#xff09;7.乒乓球8.上课划水必备-井字游戏&#xff08;我敢说100%的人都…

如何获取 ChatGPT 的 OpenAI API 密钥

为什么需要 OpenAI API 密钥&#xff1f; 拥有 OpenAI API 密钥可以解锁多种强大的功能。您可以享受以下一些好处&#xff1a; 访问先进的人工智能模型 OpenAI 开发了 GPT-3 和 Codex 等多种先进的人工智能模型。借助 API 密钥&#xff0c;您可以利用这些模型的功能来执行自然…

面试题:MySQL 自增主键一定是连续的吗?

文章目录 测试环境&#xff1a;一、自增值的属性特征&#xff1a;1. 自增主键值是存储在哪的&#xff1f;2. 自增主键值的修改机制&#xff1f; 二、新增语句自增主键是如何变化的&#xff1a;三、自增主键值不连续情况&#xff1a;&#xff08;唯一主键冲突&#xff09;四、自…

git 常用基本命令, reset 回退撤销commit,解决gitignore无效,忽略记录或未记录远程仓库的文件,删除远程仓库文件

git 基本命令 reset 撤销commit https://blog.csdn.net/a704397849/article/details/135220091 idea 中 rest 撤销commit过程如下&#xff1a; Git -> Rest Head… 在To Commit中的HEAD后面加上^&#xff0c;点击Reset即可撤回最近一次的尚未push的commit Reset Type 有三…

maven阿里源找不到指定jar包解决方案

到这里去找&#xff1a; https://mvnrepository.com/ 例如你要找&#xff1a;spring-boot-starter-web 复制坐标即可。IDEA会去坐标自带的网址寻找资源&#xff0c;可能会慢一点。

轻量应用服务器2核2G3M带宽腾讯云和阿里云价格1元之争?

轻量应用服务器2核2G3M带宽配置阿里云和腾讯云都降价了&#xff0c;阿里云63元一年&#xff0c;腾讯云62元一年&#xff0c;到底选哪家比较好&#xff1f;这个价都需要新用户资格&#xff0c;第一次购买云服务器的用户&#xff0c;所以&#xff0c;如果你的账号是新用户&#x…

pda手持终端定制_基于联发科|紫光展锐平台的手持终端解决方案

pda手持终端的高性能正在重新定义便携式设备的工作效率。pda手持终端解决方案采用了8核心2.0G主频处理器及Android 10系统&#xff0c;可选配2G16G/4G64G内存&#xff0c;这款手持终端确保了更快的运行速度和更低的功耗。它支持各种功能选配&#xff0c;包括条码扫描、NFC、红外…

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; 2.2 VG (Volume Group&#xff0c;卷组&#xff09; 2.3 LV (Logical Volume&#xff0c;逻辑卷&#xff09; 3. 常用的磁盘命令 4. 查看系统信息的命…

分享好用的chatgpt

1.在vscode中&#xff0c;点击这个&#xff1a; 2.搜索&#xff1a;ChatGPT - 中文版&#xff0c;个人觉得这个更好用&#xff1a; 3.下载完成之后&#xff0c;左侧会多出来这个&#xff1a; 点击这个图标就能进入chatgpt界面了 4.如果想使用tizi访问国外的chatgpt&#xf…

Vue实现导出Excel表格,提示“文件已损坏,无法打开”的解决方法

一、vue实现导出excel 1、前端实现 xlsx是一个用于读取、解析和写入Excel文件的JavaScript库。它提供了一系列的API来处理Excel文件。使用该库&#xff0c;你可以将数据转换为Excel文件并下载到本地。这种方法适用于在前端直接生成Excel文件的场景。 安装xlsx依赖 npm inst…

CSS 丝带形状效果

CSS 丝带形状效果如图&#xff1a; 通过CSS创建折叠丝带形状 这里代码应该比较清晰易懂&#xff0c;clip-path 的值应该也容易理解。要注意的是&#xff0c;我们使用了 color-mix() 函数&#xff0c;这个属性允许创建主颜色的深色版本。现在如果我们将元素旋转相反的方向&#…

深入理解 C# 中的字符串比较:String.CompareTo vs String.Equals

深入理解 C# 中的字符串比较&#xff1a;String.CompareTo vs String.Equals 在处理字符串时&#xff0c;了解如何正确比较它们对于编写清晰、有效和可靠的 C# 程序至关重要。本文将深入探讨 C# 中的两个常用字符串比较方法&#xff1a;String.CompareTo 和 String.Equals&…

SAP MD04界面中增加功能按钮

通常在查看物料需求时,PMC用的最多的就是MD04的界面,在MD04界面中有很多的功能按钮,同时我们还可以新增功能按键的跳转。 1、我们先设置一下系统标准的在MD04界面中增加跳转的按钮 如下图:自有收藏夹—导航参数文件—维护 然后在MD04的界面中就可以看到我们刚才加的MM0…

QT应用篇 二、QML用Image组件实现Progress Bar 的效果

QT应用篇 一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 文章目录 QT应用篇前言一、qml需求二、使用组件1.Image组件2.Image中fillMode的使用例子 总结 前言 记录自己学习QML的一些小技巧方便日后查找…

存算分离降本增效,StarRocks 助力聚水潭 SaaS 业务服务化升级

作者&#xff1a;聚水潭数据研发负责人 溪竹 聚水潭是中国领先的 SaaS 软件服务商&#xff0c;核心产品是电商 ERP&#xff0c;协同350余家电商平台&#xff0c;为商家提供综合的信息化、数字化解决方案。公司是偏线下商家侧的 toB 服务商&#xff0c;员工人数超过3500&#xf…

利用格式工厂,做视频的剪辑

接到一个工作&#xff0c;一段视频中&#xff0c;需要抠除其中某一段 其实 剪映、苹果手机的视频编辑功能&#xff0c;都可以轻松搞定 只是清晰度会有损伤 而且对于太大的视频&#xff0c;苹果手机就没法处理了。 很多软件在导出高清视频时&#xff0c;需要会员收费&#xff0…

**Python**综合案例

Python综合案例 一、系统需求分析 1、需求分析 使用面向对象编程思想完成学员管理系统的开发,具体如下: ① 系统要求:学员数据存储在文件中 ② 系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息及退出系统等功能。 2、角色…

闲来无事互相翻包,来看看我们的2023通勤EDC

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 EDC&#xff0c;Every Day Carry&#xff0c;顾名思义就是每天包里装的东西。 什么&#xff1f;难道除了…

零代码也能玩出花:Mugeda在H5设计中的魔法力量

文章目录 一、Mugeda零代码可视化H5设计工具简介二、Mugeda零代码可视化H5设计实战案例1. 注册并登录Mugeda账号2. 选择模板3. 编辑页面内容4. 添加动画效果5. 预览和发布 三、Mugeda零代码可视化H5设计的优势《Mugeda零代码可视化H5设计实战》内容简介作者简介目录前言/序言 随…