完整代码如下: import cv2 as cv import matplotlib.pyplot as plt def his(img,b):#用matplotlib画图 plt.figure("histogram") plt.title("histogram of lena") plt.hist(img.ravel(),bins=b) plt.show() imge=cv.imread(r'E:\\image\\lenagray.jpg') img=cv.cvtColor(imge,cv.COLOR_RGB2GRAY) cv.imshow('lena',img) his(img,256) cv.waitKey(0) cv.destroyAllWindows() def his(img,bin):#基于opencv API画 hist = cv.calcHist([img],[0],None,[256],[0,255]) plt.plot(hist,'r') plt.show() ------------------------------代码理解了吗,休息一下吧 ------------------------------我是广告开始的分隔线 --------------------------------我是广告结束的分隔线 import cv2 as cv import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体 mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号 def image_hist(image): #画三通道图像的直方图 color = ('b', 'g', 'r') #这里画笔颜色的值可以为大写或小写或只写首字母或大小写混合 for i , color in enumerate(color): hist = cv.calcHist([image], [i], None, [256], [0, 256]) #计算直方图 plt.plot(hist, color) plt.xlim([0, 256]) plt.title("lena的直方图,不同颜色是不同通道") plt.show() img=cv.imread(r'E:\\image\\lena.jpg') cv.imshow('image',img) image_hist(img) cv.waitKey(0) cv.destroyAllWindows() 其完整代码如下: import cv2 as cv import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体 mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号 img = cv.imread('E:\\image\\lena.jpg', 0) # create a mask 应用掩膜 mask = np.zeros(img.shape[:2], np.uint8)#与img大小相同 mask[100:300, 100:400] = 255#部分位置全黑 masked_img = cv.bitwise_and(img, img, mask=mask)#掩膜后的图像,由原图与掩膜相与得到 hist_full = cv.calcHist([img], [0], None, [256], [0,256])#画原图的直方图 hist_mask = cv.calcHist([img], [0], mask, [256], [0,256])#画掩膜的直方图 plt.subplot(221), plt.imshow(img, 'gray'),plt.title("原图") plt.subplot(222), plt.imshow(mask,'gray'),plt.title("掩膜") plt.subplot(223), plt.imshow(masked_img, 'gray'),plt.title("掩膜后的图") plt.subplot(224), plt.plot(hist_full, color='r'), plt.plot(hist_mask, color='b') plt.title("红色为原图直方图,蓝色为掩膜的直方图") plt.xlim([0,256]) plt.tight_layout() plt.show() |
|
来自: pythonjava学习 > 《python图像处理》