比如这种的图片,大面积是黑色的,但又不全是黑色的
但是这样图片,我希望他被判定为『无效画面』
有什么办法可以『判断一张图片的黑色区域是否大于 60%』
或者说『判断一张图片的纯色区域是否大于 60%』?
一开始想过一个办法:『压缩图片』后判断图片大小,但是觉得这样不可靠
还有就是这样的『高斯模糊』的图片也是垃圾图片,也应该去除
比如这种的图片,大面积是黑色的,但又不全是黑色的
但是这样图片,我希望他被判定为『无效画面』
有什么办法可以『判断一张图片的黑色区域是否大于 60%』
或者说『判断一张图片的纯色区域是否大于 60%』?
一开始想过一个办法:『压缩图片』后判断图片大小,但是觉得这样不可靠
还有就是这样的『高斯模糊』的图片也是垃圾图片,也应该去除
OpenCV 的话可以通过统计图像中黑色像素的数量来判定,这里是一段示例代码:
import cv2
# 读入图像
img = cv2.imread("image.jpg")
# 将图像转换为灰度图像,方便处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 计算图像中黑色像素数量
black_pixels = cv2.countNonZero(gray < 128)
# 计算图像总像素数量
total_pixels = img.shape[0] * img.shape[1]
# 计算黑色像素所占百分比
black_percent = black_pixels / total_pixels
# 判断黑色像素是否占图像 60% 以上
if black_percent > 0.6:
print("黑色像素占图像 60% 以上")
else:
print("黑色像素未占图像 60%")
需要注意的是,以上代码是基于灰度图像,其定义黑色为像素值小于 128 的灰度值。如果图像是彩色图像,可能需要使用不同的阈值来计算黑色像素。
15 回答8.4k 阅读
3 回答3.4k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
应该是把每个点的色值存进一个二维码数组 然后判断黑色的百分比
纯色也同样判断,group by分组之后 再看下 最多数量的占比总共是多少 当然这个不是特别准