plt.imshow与cv2.imshow的区别
时间: 2023-04-08 07:02:55 浏览: 255
plt.imshow和cv2.imshow都是用于显示图像的函数,但它们的实现方式不同。plt.imshow是matplotlib库中的函数,可以显示numpy数组或PIL图像,而cv2.imshow是OpenCV库中的函数,可以显示OpenCV图像。另外,plt.imshow可以在Jupyter Notebook中直接显示图像,而cv2.imshow需要在窗口中显示。
相关问题
import cv2 as cv #导入cv2 import numpy as np #导入numpy from matplotlib import pyplot as plt #导入matplotlib img = cv.imread('shape.png', 0) #读取图片 f = np.fft.fft2(img) #计算二维的傅里叶变换 fshift = np.fft.fftshift(f) #计算一维的傅里叶变换 rows, cols = img.shape #获取图像的行数和列数 crow,ccol = int(rows/2), int(cols/2) fshift[crow-30:crow+30, ccol-30:ccol+30] = 0 ishift = np.fft.ifftshift(fshift) iimg = np.fft.ifft2(ishift) iimg = np.abs(iimg) #显示原始图像和高通滤波处理图像 plt.subplot(121), plt.imshow(img, 'gray'), plt.title('Original Image') plt.axis('off') plt.subplot(122), plt.imshow(iimg, 'gray'), plt.title('Result Image') plt.axis('off') plt.show() rows, cols = img.shape crow,ccol = int(rows/2), int(cols/2) mask = np.zeros((rows, cols, 2), np.uint8) mask[crow-30:crow+30, ccol-30:ccol+30] = 1
import cv2 as cv 的意思是导入名为cv2的模块,并将其命名为cv。cv2是一个用于计算机视觉的Python库,其中包含了许多图像处理和计算机视觉方面的函数。通过导入cv2模块,并将其命名为cv,可以方便地使用其中的函数进行图像处理和计算机视觉相关的任务。
import cv2import numpy as npfrom matplotlib import pyplot as plt # 读取图片并转为灰度图像img = cv2.imread("image.jpg", 0) # 计算灰度直方图hist = cv2.calcHist([img], [0], None, [256], [0, 256]) # 显示灰度直方图plt.hist(img.ravel(), 256, [0, 256])plt.show() # 计算二维直方图hsv = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)hist2d = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256]) # 显示二维直方图plt.imshow(hist2d, interpolation="nearest")plt.show()
这段代码是用Python中的OpenCV库来计算和显示图片的灰度直方图和二维直方图。首先,使用cv2.imread()函数读取一张图片并转为灰度图像。然后,使用cv2.calcHist()函数计算灰度直方图和二维直方图。最后,使用matplotlib库中的plt.hist()函数和plt.imshow()函数分别显示灰度直方图和二维直方图。其中,灰度直方图使用一维的256个bin来表示灰度级别的分布情况,而二维直方图则使用180个bin表示色调(hue)的分布情况,256个bin表示饱和度(saturation)的分布情况。
阅读全文