GEEK陆 2024-04-28 23:41 采纳率: 33.3%
浏览 4
已结题

做一个陶瓷衬垫图像倾斜矫正系统,最小外接矩形不懂

我已经完成了阈值分割后形态学处理,但是在最小外接矩形上出了点问题,我在CSDN上找的一个最小外接矩形,但是那个代码运行完之后并没有把图像图像旋转成正的,我自己加了一个之后就报错了

  • 写回答

6条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-04-28 23:41
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述:在阈值分割和形态学处理后,进行最小外接矩形处理时出现问题。 解决步骤: 1.了解最小外接矩形的原理及应用。 最小外接矩形是指将给定的点集包含在矩形中,同时使矩形的面积最小,常用于图像处理中的目标定位、跟踪等应用。 2.检查所使用的代码的正确性。 在使用他人代码时,应仔细检查其正确性及适用性。可以在代码中添加一些调试信息,例如输出一些中间变量并观察其值是否符合预期,同时可对变量类型、范围进行检查。 3.尝试解决问题。 如果在运行代码时出现错误,可以根据错误提示进行调试。对于无法解决的问题,可以尝试重新实现最小外接矩形处理算法,或使用其他开源代码。在实现或调用代码时,还应注意图像旋转及坐标系转换等问题。 4.注意代码格式及规范。 在编写和使用代码时,应注意代码的格式及规范,例如变量名称、大小写、缩进等,以便于维护和调试。同时,还应注意代码的注释及文档,以方便阅读和使用。以下为一个最小外接矩形处理的示例代码:
    import cv2
    import numpy as np
    img = cv2.imread('test.jpg')
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    rects = []
    for contour in contours:
        rect = cv2.minAreaRect(contour)
        rect_points = cv2.boxPoints(rect)
        rect_points = np.int0(rect_points)
        cv2.drawContours(img, [rect_points], 0, (0, 0, 255), 2)
        rects.append(rect)
    cv2.imshow('result', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    参考资料: [1] Opencv-python中文教程 [2021-05-10] [2] OpenCV: Getting Started with Images [2021-05-10] [3] Python官方文档 [2021-05-10]

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月29日
  • 创建了问题 4月28日