[用python中的opencv剪切图像的特定部分

问题描述 投票:1回答:1

我有一个IC芯片的图像,我想在中心切出标记。标记始终位于左下角圆圈上方的此特定位置。这个想法是首先找到我已经通过霍夫圆变换完成的圆的位置。现在,我想剪掉标记所在的部分。理想情况下,它应该不是正方形或矩形,而应类似于图片中的内容:

example

这是我的代码的一部分:

        cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
        circles = cv2.HoughCircles(morph_image, cv2.HOUGH_GRADIENT, 1.3, 20, param1=50, param2=25, minRadius=15,
                                   maxRadius=19)

        if circles is not None:
            circles = np.uint16(np.around(circles))
            for i in circles[0, :]:
                # Zeichne äußeren Kreis
                cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)
                # Zeichne Kreiszentrum
                cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)
                # Tupel mit x- und y-Koordinaten des Kreiszentrums
                circle_center = (i[0], i[1])
                print('Die Koordinaten des Kreiszentrums lauten: ', circle_center)
                """cv2.imshow('Kreis', cimg)
                cv2.waitKey(0)
                cv2.destroyAllWindows()"""
        else:
            circle_center = None
            print('Kein Kreis gefunden')
            """cv2.imshow('Kein Kreis', cimg)
            cv2.waitKey(0)
            cv2.destroyAllWindows()"""

所以我的cicle center位于我的圆的中心位置(例如(124, 370))。如何自动裁剪图像的这一部分?我能以某种方式播种吗?理想情况下,我想将标记裁剪为另一张图像以单独检查它,但是我猜用marking_img = img[y:y+h, x:x+w]的常规裁剪方法不起作用。

编辑:这是原始图片:

enter image description here

输出应该像第一个图像,如果可能的话,像这样:

enter image description here

因此,最后,我希望有两张图像:一幅仅带有裸片的图像而没有标记,另一幅仅带有标记的图像>

我有一个IC芯片的图像,我想在中心切出标记。标记始终位于左下角圆圈上方的此特定位置。这个想法是首先找到圆...

python opencv crop
1个回答
0
投票

这是Python / OpenCV中的一种方法。

© www.soinside.com 2019 - 2024. All rights reserved.