我想找到图像的最大值,但我得到了一个错误
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