opencv2中计算图像四周的白色边框大小并裁剪掉白色部分剩余部分另存为新图片
下面是一个示例代码,可以实现计算图像四周的白色边框大小并裁剪掉白色部分,剩余部分另存为新图片。
import cv2
# 读取原始图像
img = cv2.imread('original_image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 计算图像四周的白色边框大小
top, bottom, left, right = 0, 0, 0, 0
for i in range(gray.shape[0]):
if cv2.mean(gray[i:i+1,:])[0] == 255:
top += 1
else:
break
for i in range(gray.shape[0]-1, -1, -1):
if cv2.mean(gray[i:i+1,:])[0] == 255:
bottom += 1
else:
break
for i in range(gray.shape[1]):
if cv2.mean(gray[:,i:i+1])[0] == 255:
left += 1
else:
break
for i in range(gray.shape[1]-1, -1, -1):
if cv2.mean(gray[:,i:i+1])[0] == 255:
right += 1
else:
break
# 裁剪掉白色部分
cropped = img[top:img.shape[0]-bottom, left:img.shape[1]-right]
# 另存为新图片
cv2.imwrite('new_image.jpg', cropped)
代码中,首先读取原始图像并将其转换为灰度图像。然后,通过遍历图像的每一行和每一列,计算出四周白色边框的大小。接着,根据计算出的边框大小,裁剪掉白色部分。最后,将剩余部分另存为新图片
原文地址: https://www.cveoy.top/t/topic/hucQ 著作权归作者所有。请勿转载和采集!