我是新来的openCV和Python.I想要计算每行和每列图像的黑色像素总数。任何人都可以给出提示或帮助吗?计算一个图像的每行和每列黑色像素的数量
-2
A
回答
1
正如三木建议,你可以利用cv2.reduce
。
使用
numpy.where
创建包含1
其中黑色像素是,并且0
用于任何其它强度的掩模。现在调用
cv2.reduce
两次(每个轴一次),执行REDUCE_SUM
,并将输出数据类型设置为32位整数。
代码:
import cv2
import numpy as np
# Make random image
img = np.zeros((128,128),np.uint8)
cv2.randu(img, 0, 256)
mask = np.uint8(np.where(img == 0, 1, 0))
col_counts = cv2.reduce(mask, 0, cv2.REDUCE_SUM, dtype=cv2.CV_32SC1)
row_counts = cv2.reduce(mask, 1, cv2.REDUCE_SUM, dtype=cv2.CV_32SC1)
print "Column counts: ", col_counts.flatten().tolist()
print "Row counts: ", row_counts.flatten().tolist()
输出示例:
Column counts: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 2, 1, 1, 1, 0, 2, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 1, 1, 1, 0, 0, 2, 1, 3, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 0, 1, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1]
Row counts: [0, 0, 1, 0, 0, 0, 2, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 1, 1, 2, 2, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 2]
1
Here你可以找到countNonZero
函数计算数组中的非零元素,在你的情况下,它将是一个行或一列。
cv2.countNonZero(src) → retval
PS:该函数将返回非黑色像素的数量,所有你所要做的就是减去这个数字从像素数(分辨率或行*的cols)。
相关问题
- 1. 计数图像的黑色像素
- 2. 使用Python的每行黑色像素的绘图数
- 3. 像素每像素图像,透明变成黑色
- 4. 更改.gif图像中每个像素的颜色数量?
- 5. OpenCV - 计算黑色像素数
- 6. 如何计算MS Access VBA中图像的黑色像素?
- 7. 黑色像素计数
- 8. 计算图像每个角的坐标
- 9. Matlab图像 - 如何计算白色像素的数量
- 10. 如何计算opencv中每个blob中的白色像素?
- 11. 统计图像中每行的像素数
- 12. Get和从HWND(8,4,1位每像素 - 黑色图像)保存位图
- 13. 获取灰度或黑白图像的每个像素的像素值?
- 14. OpenCV:如何填充每个像素的每个RGB颜色值的RGB图像?
- 15. 从黑色和白色1D阵列像素创建图像
- 16. iPhone:如何获取图像的每个像素的颜色?
- 17. 如何获取图像中每个像素的强度。我想计算图像中更高强度的像素
- 18. 在DirectX 9中,每个绘图调用每像素可以运行多于一次的像素着色器?
- 19. 读取每个像素的PVRTC图像颜色信息
- 20. iOS:从图像的每个像素获取顶部颜色
- 21. 从图像中的每个像素获取色相
- 22. Python - 将位图图像转换为每个像素的颜色列表
- 23. 计算图片中蓝色像素的数量
- 24. 一个程序来计算图片中的像素数量?
- 25. JS生成一个图像中的每个像素的RGB
- 26. 计算图像中每行的字节数
- 27. 阈值方法是将每个像素变成黑色
- 28. 计算每个变量的数量,其中每个变量= 1
- 29. Qt绘制一个蓝色的像素,如果原始像素是在一个新的图像黑色
- 30. 填充一个ArrayList与图像的每个像素
你有什么已经尝试过? – Mazz
提示:使用“减少” – Miki