gpt4 book ai didi

python - 在图像中查找第一个非零值

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:26 27 4
gpt4 key购买 nike

我是 Python 的新手,我想定位二进制图像的极值。黑色背景中间有一个白色形状,我想找到顶部、底部、左侧和右侧的封闭矩形。

我这样做的方法是在所有方向上找到第一个非零像素。

我的功能是这样的,但它只适用于 Y 轴。如何设法通过 X 轴?

def first_non_zero(img):
width = img.shape[1]
height = img.shape[0]

idx = 0
result = 0

for j in range(0, height):
idx = np.argmax(img[j])

if idx > 0:
result = j
break

return result

最佳答案

我会简单地使用 numpy.nonzero然后找到每个轴的最小值和最大值。

脚本:

import cv2
import numpy as np

img = cv2.imread('blob_in_the_middle.png', cv2.IMREAD_GRAYSCALE)
positions = np.nonzero(img)

top = positions[0].min()
bottom = positions[0].max()
left = positions[1].min()
right = positions[1].max()

output = cv2.rectangle(cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
, (left, top), (right, bottom), (0,255,0), 1)

cv2.imwrite('blob_with_bounds.png', output)

示例输入:

示例输出:

关于python - 在图像中查找第一个非零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53401617/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com