以下均爲github上opencv的個人學習筆記,原路徑如下:
https://github.com/JimmyHHua/opencv_tutorials
源碼示例:
import cv2 as cv
import numpy as np
src = cv.imread("./test.png",cv.IMREAD_GRAYSCALE) //爲了統計圖像像素的值,這裏需要將BGR圖像轉換成灰度圖。
cv.namedWindow("input",cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
min, max, minLoc, maxLoc = cv.minMaxLoc(src) //函數minMaxLoc查找最小和最大元素值及其位置,並返回雙精度的值(Double類型)。這裏用來獲取灰度圖像中像素最大與最小元素值(min,max表示)及其相應的位置(minLoc,maxLoc)
print("min:%.2f, max:%.2f" %(min,max)) //打印最大最小元素值
print("min loc:", minLoc) //打印最小元素值的位置
print("max loc:", maxLoc) //打印最大元素值得位置
means,stddev = cv.meanStdDev(src) //函數meanStdDev用來計算一維矩陣的均值和標準偏差,means代表均值,stddev代表標準差,返回雙精度值(Double類型)
print("mean: %.2f,stddev: %.2f" %(means,stddev))
src[np.where(src<means)] = 0 //小於均值的像素值均歸零(黑色),這裏用到了np.where的對比函數
src[np.where(src>means)] =255 //大於均值的像素值均歸賦值爲255(白色),這裏用到了np.where的對比函數
cv.imshow("binary", src)
cv.waitKey(0)
cv.destroyAllWindows()