代码
import cv2 as cv
import numpy as np
src = cv.imread('./bird.jpg', cv.IMREAD_GRAYSCALE)
cv.imshow('input', src)
# 最大最小值和相应的位置
min, max, minLoc, maxLoc = cv.minMaxLoc(src)
print('min:%.2f,max:%.2f,' % (min, max))
print('minLoc:', minLoc)
print('maxLoc', maxLoc)
# 均值和标准差
mean, std = cv.meanStdDev(src)
print('mean:%.2f,std:%.2f' % (mean, std))
# 二值化
src[np.where(src < mean)] = 0
src[np.where(src > mean)] = 255
cv.imshow('binary', src)
cv.waitKey(0)
cv.destroyAllWindows()
实验结果
解释
一、均值和标准差,cv.meanStdDev()
mean, std = cv.meanStdDev(src)
二、最大最小值和相应的位置cv.minMaxLoc()
min, max, minLoc, maxLoc = cv.minMaxLoc(src)
print(‘min:%.2f,max:%.2f,’ %
(min, max))
这里需要注意,python中print打印两个变量时的格式问题,最常见的就是把这个%符号忘掉
三、np.where()
实际上读取的灰度图像是numpy数组,所以,可以直接用np.where()