如何在OpenCV Python中找到图像的最大值



我想找到图像的最大值,但我得到了一个错误


import cv2
image = cv2.imread('photo.jpg')
mask = image[:,:,2]
(min_val, max_val, min_loc, max_loc) = cv2.minMaxLoc(image) 
print(max_val)

误差

cv2.error: OpenCV(4.7.0) D:aopencv-pythonopencv-pythonopencvmodulescoresrcminmax.cpp:1504: error: (-215:Assertion failed) (cn == 1 && (_mask.empty() || _mask.type() == CV_8U)) || (cn > 1 && _mask.empty() && !minIdx && !maxIdx) in function 'cv::minMaxIdx'

min在每个通道上定义最大los

for i in range(3):
(min_val, max_val, min_loc, max_loc) = cv2.minMaxLoc(image[:,:,i])
print(max_val)

医生清楚地说

该函数不适用于多通道数组。如果需要在所有通道中找到最小或最大元素,请首先使用Mat::重塑将数组重新解释为单通道。或者您可以使用extractImageCOI、mixChannels或split提取特定的通道。

https://docs.opencv.org/3.4/d2/de8/group__core__array.html gab473bf2eb6d14ff97e89b355dac20707

最新更新