import cv2

from numpy import array

from matplotlib import pyplot

## カラーで読み込む ##
img_bgr = cv2.imread('./a.png', 6)

##hsv空間に変換

img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)


## 赤色の範囲を定義 ##

hsv_min = array([0,   50,   0])

hsv_max = array([39, 215, 100])

## 赤色　≒ さび色をマスクとして定義する ##   

mask = cv2.inRange(img_hsv, hsv_min, hsv_max)

##b.pngに出力

cv2.imwrite("b.png",mask)


##面積計算のために再読込み

mask2 = cv2.imread("./b.png",cv2.IMREAD_GRAYSCALE)

##白色部分のピクセルをカウントする

sabi = cv2.countNonZero(mask2)

##画像全体との面積比を計算する

zentai = mask2.size

print("sabi[%]:",(sabi/zentai)*100)