牛魔王的角没了 2023-08-11 17:58 采纳率: 63%
浏览 11

NYU数据集提取到的rawdepth有黑边

从下载的nyu_depth_v2_labeled.mat中提取的RGB-D图,得到的rawdepth有黑边,请问这该怎么处理?
NYU数据集RGB图和Depth图是对齐,但是有黑边的话就不是对齐的了吧。

img

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-11 20:35
    关注

    【以下回答由 GPT 生成】

    我了解您的问题。要处理NYU数据集中提取的rawdepth图片以去除黑边,您可以执行以下步骤:

    1. 导入所需的库:
    import numpy as np
    import cv2
    
    1. 读取RGB和Depth图像:
    rgb_image = cv2.imread('path_to_rgb_image.jpg')
    depth_image = cv2.imread('path_to_depth_image.png', cv2.IMREAD_ANYDEPTH)
    

    请记得将path_to_rgb_image.jpgpath_to_depth_image.png替换为实际图像文件的路径。

    1. 查找黑边区域:
    gray_image = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2GRAY)
    _, threshold = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    contours, _ = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    largest_contour = max(contours, key=cv2.contourArea)
    x, y, w, h = cv2.boundingRect(largest_contour)
    

    这将通过阈值化灰度图像和查找最大轮廓来找到黑边区域。

    1. 去除黑边:
    rgb_image_cropped = rgb_image[y:y+h, x:x+w]
    depth_image_cropped = depth_image[y:y+h, x:x+w]
    

    这将通过裁剪原始RGB和Depth图像以仅保留黑边外的区域来去除黑边。

    1. 可选:保存裁剪后的图像:
    cv2.imwrite('path_to_cropped_rgb_image.jpg', rgb_image_cropped)
    cv2.imwrite('path_to_cropped_depth_image.png', depth_image_cropped)
    

    请记得将path_to_cropped_rgb_image.jpgpath_to_cropped_depth_image.png替换为您希望保存图像的路径。

    现在,您应该有已经去除黑边的RGB和Depth图像。这样,它们应该能够准确对齐了。

    如果上述步骤没有解决您的问题,请让我知道,我将尽力提供进一步的帮助。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月11日

悬赏问题

  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答