python图显示在新的窗口_Python:在自己的窗口中显示图像的每个对象

这篇博客展示了如何在Python中使用OpenCV库从图像中裁剪对象,并在独立的窗口中显示每个裁剪后的图像。代码示例中,作者通过阈值处理和轮廓检测找到图像中的数据矩阵代码,并在新窗口显示。尽管该代码成功处理了一个对象,但作者询问如何更简便地处理和显示图像中的多个对象。
摘要由CSDN通过智能技术生成

我编写了一些代码,从图像中裁剪对象(在本例中是数据矩阵代码):

import numpy as np

import cv2

image = cv2.imread("datamatrixc.png")

img_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

img_height, img_width = image.shape[:2]

WHITE = [255, 255, 255]

# Threshold filter

ret, thresh = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)

# Get Contours

_, contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# Get Last element of the contours object

max = len(contours) - 1

cnt = contours[max]

# Get coordinates for the bounding box

x, y, w, h = cv2.boundingRect(cnt)

image_region = image[ int(((img_height / 2) - h) / 2) : int(((img_height / 2) - h) / 2 + h), int(x): int(x + w) ]

dmc = cv2.copyMakeBorder(image_region, 10, 10, 10, 10, cv2.BORDER_CONSTANT, value = WHITE)

cv2.imshow("Test", dmc)

cv2.waitKey(0)

cv2.destroyAllWindows()

e47f99eaf0c18cc4e8e4f6cdec99caff.png

代码运行良好,因此我收到:

0234ddb27f0c9e30b9ed2cebd85a2c72.png

不过,下一幅图要复杂一些。

我收到的结果与前一幅图像相同,但我不知道如何检测其他两个对象。

7fca59b2584907e2ee1ce59ccdb7101f.png

有没有一种更简单的方法让每个物体都显示在它的窗口中?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值