以bagel为例,其中有calibration、
bagel # 百吉圈(硬面包)calibrationcamera_parameters.jsontestcombinedgt # 缺陷部位的分割剪影pngrgb # 原图pngxyz # tiffcontamination # 污染物同上crack同上good同上 hole同上 traingoodrgbxyzvalidationgood同trainclass_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 dimensionstiff_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 heightpoints.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 samplepoint_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