更新 Vision/camera_coordinate_dete.py

This commit is contained in:
hjw
2024-09-09 09:54:21 +00:00
parent 72f5c9e9fb
commit 54c6acb436

View File

@ -13,6 +13,7 @@ import cv2
import open3d as o3d import open3d as o3d
from Vision.tool.CameraRVC import camera from Vision.tool.CameraRVC import camera
from Vision.yolo.yolov8_pt_seg import yolov8_segment from Vision.yolo.yolov8_pt_seg import yolov8_segment
from Vision.tool.utils import find_position
class Detection: class Detection:
@ -156,13 +157,16 @@ class Detection:
seg_point.append(pm_seg) seg_point.append(pm_seg)
cv2.polylines(img, [box], True, (0, 255, 0), 2) cv2.polylines(img, [box], True, (0, 255, 0), 2)
min_value = min(Depth_Z) # 求深度最小值 _idx = find_position(Depth_Z, RegionalArea, 100,True)
min_idx = Depth_Z.index(min_value) # 求最小值对应索引
cv2.circle(img, (uv[min_idx][0], uv[min_idx][1]), 30, (255, 0, 0), 20) # 标出中心点 if _idx == None:
return 1, img, None, None
else:
cv2.circle(img, (uv[_idx][0], uv[_idx][1]), 30, (255, 0, 0), 20) # 标出中心点
if Point_isVision==True: if Point_isVision==True:
pcd = o3d.geometry.PointCloud() pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(seg_point[min_idx]) pcd.points = o3d.utility.Vector3dVector(seg_point[_idx])
plane_model, inliers = pcd.segment_plane(distance_threshold=0.01, plane_model, inliers = pcd.segment_plane(distance_threshold=0.01,
ransac_n=5, ransac_n=5,
num_iterations=5000) num_iterations=5000)
@ -172,7 +176,7 @@ class Detection:
outlier_cloud.paint_uniform_color([0, 1, 0]) outlier_cloud.paint_uniform_color([0, 1, 0])
o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud, pcd2]) o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud, pcd2])
return 1, img, xyz[min_idx], nx_ny_nz[min_idx] return 1, img, xyz[_idx], nx_ny_nz[_idx]
else: else:
return 1, img, None, None return 1, img, None, None