python - 如何找出图像的平均像素值,从顶部和底部扫描它?
解决方案
您可以使用np.average:
img = cv2.imread('img.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) #convert it to RGB channel
plt.imshow(img)
让我们裁剪前 1000 行(图像中的前 5 行是白色的,因此平均值仅为 255)。
crop_img = img[:1000, :]
plt.imshow(crop_img)
如果要平均整个裁剪图像(包括 3 个通道 RGB),请使用:
np.average(crop_img)
> 221.7606454078586
如果要平均超过 3 个通道,请使用:
np.average(crop_img, axis = (0,1))
array([219.85728484, 220.16578896, 225.25886241])
如果您只想对单个通道进行平均,请说红色:
np.average(crop_img[:, :, 0]) #replace 0 with 1 for green channel and with 2 for blue channel
219.85728484414187
同样,您可以使用np.mean
推荐阅读
- python - 如何使用 Tkinter Scale 在 Matplotlib 图表中绑定和显示 Pandas DataFrame 列?
- c - 如何重置 STM32 HAL UART 驱动程序 (HAL) 状态?
- python - 在 Python 中替换 JSON 文件的多个键和值
- php - 如何修复 303 查看 PHP CodeIgniter 中的其他错误
- ionic-framework - 如果应用程序被杀死,(离子)handleNotificationReceived 不会被调用
- sql - 如何使用过滤运行 Row_Number()
- ios - 如何从自己的应用程序重定向到相机胶卷照片
- python - 从 Gitlab 部署 python azure 函数应用程序
- python - 如何在熊猫中找到两个字符串之间的相关性
- extjs - 如何将使用 Ext.create 添加的对象添加到我的视口?