class FindImageBBox(object):
def __init__(self, value, img):
self.value = value #阈值
self.img = img
def do(self):
height = img.shape[0]
width = img.shape[1]
v_sum = np.sum(img, axis=0)
h_sum = np.sum(img, axis=1)
left = 0
right = width - 1
top = 0
low = height - 1
# 从左往右扫描,遇到非零像素点就以此为物体的左边界
for i in range(width):
if v_sum[i] > 0: #value
left = i
break
# 从右往左扫描,遇到非零像素点就以此为物体的右边界
for i in range(width - 1, -1, -1):
if v_sum[i] > 0: #value
right = i
break
# 从上往下扫描,遇到非零像素点就以此为物体的上边界
for i in range(height):
if h_sum[i] > 0: #value
top = i
break
# 从下往上扫描,遇到非零像素点就以此为物体的下边界
for i in range(height - 1, -1, -1):
if h_sum[i] > 0: #value
low = i
break
return (left, top, right, low)