每一张图片对应一种分类,如何计算全部为1类的图像像素点和全部为1类图像和0类图像像素点之间的比值,代码
时间: 2024-03-23 14:40:33 浏览: 13
如果你想计算所有图像中全部为1类的像素点和全部为1类图像和0类图像像素点之间的比值,你可以使用以下代码:
```python
import cv2
import numpy as np
import os
# 定义变量
total_pixels = 0
class1_pixels = 0
class1_0_pixels = 0
class1_images = 0
# 遍历所有图像
for i in range(1, 92):
filename = os.path.join("I:/18Breakageratecalculation/mask-slic use/maskSLIC-master/result/result6/slic", '{:03d}.png'.format(i))
img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
total_pixels += img.shape[0] * img.shape[1]
if np.all(img == 1):
class1_pixels += img.shape[0] * img.shape[1]
class1_images += 1
elif np.all((img == 1) | (img == 0)):
class1_0_pixels += img.shape[0] * img.shape[1]
# 计算比值
class1_ratio = float(class1_pixels) / float(total_pixels * class1_images)
class1_0_ratio = float(class1_0_pixels) / float(total_pixels)
# 打印结果
print("全部为1类的图像像素点比例:{:.2f}%".format(class1_ratio * 100))
print("全部为1类图像和0类图像的像素点比例:{:.2f}%".format(class1_0_ratio * 100))
```
这个代码示例使用了一个 for 循环来遍历所有图像,并计算出所有图像中全部为1类的像素点和全部为1类图像和0类图像像素点的数量。我们还使用了 numpy 的 `all` 函数来判断一个图像是否全部为1类或全部为1类和0类。最后,我们计算出两个比值,并打印结果。请根据您的具体情况进行修改。