这个错误通常是由于数组中的元素类型不一致导致的。在这个例子中,因为使用了Matplotlib的plt.hist函数,它返回的是一个包含两个元素的元组,第一个元素是直方图中的值,第二个元素是直方图中的边界。而Matplotlib的plt.plot函数只能接受一个一维数组作为输入,因此需要对plt.hist返回的元组进行处理,只取第一个元素即可。修改代码如下:

import cv2 import numpy as np import matplotlib.pyplot as plt

img = cv2.imread("C:/Users/LENOVO/Desktop/c.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

计算彩色图像的直方图

hist1, bins1 = plt.hist(img.ravel(), 256) hist2 = cv2.calcHist([img], [0], None, [256], [0, 255])

显示两个直方图

plt.subplot(2, 1, 1) plt.imshow(img) plt.subplot(2, 2, 3) plt.plot(hist1) plt.subplot(2, 2, 4) plt.plot(hist2) plt.show()

import cv2import numpy as npimport matplotlibpyplot as pltimg = cv2imreadCUsersLENOVODesktopcjpggray = cv2cvtColorimg cv2COLOR_BGR2GRAY# 计算彩色图像的直方图hist1 = plthistimgravel 256hist2 = cv2calcHistimg 0 N

原文地址: http://www.cveoy.top/t/topic/bLNs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录