画出图片的三色直方图(python在matplotlib中添加中文)


# 画在一个画布上
# 彩色直方图 和 灰度直方图 原理是一样的,彩色直方图需要计算三个通道
# -*- encoding utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import matplotlib.pyplot as plt
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simhei.ttf')
# 设置中文字体img_bgr_data = cv2.imread('D:\\draw\\26.jpg')
# plt.figure(figsize=(15, 15))
# plt.title("r")
# 设置画布的大小
# plt.hist(img_bgr_data[:, :, 0].ravel(), bins=50, color='b')plt.figure(figsize=(4, 4))
histr = cv2.calcHist([img_bgr_data], [2], None, [256], [0, 256])
histr1 = cv2.calcHist([img_bgr_data], [1], None, [256], [0, 256])
histr2 = cv2.calcHist([img_bgr_data], [0], None, [256], [0, 256])
plt.plot(histr, color='r',label = "r通道",linewidth=0.8)
plt.plot(histr1, color='g',label = "g通道",linewidth=0.8)
plt.plot(histr2, color='b',label = "b通道",linewidth=0.8)
# plt.title('色度校正后图片r通道直方图',fontproperties=zhfont1)
plt.xlabel('像素值',fontproperties=zhfont1,fontsize=12)
plt.ylabel('像素个数',fontproperties=zhfont1,fontsize=12)
plt.legend(prop=zhfont1,loc=2)
# 2代表左上
plt.xlim(0, 256)plt.xticks(fontsize=12)
plt.yticks(fontsize=12)# plt.savefig('F:\\aaresult\\fit.pdf')# 打印图片,论文建议pdfg格式
plt.show()cv2.waitKey(0)

代码中 C:\Windows\Fonts\simhei.ttf 为存放中文字体的地址,需要哪种中文字体就去下载字体的ttf文件,然后在代码中链接它。

# 画在多个画布上
# 彩色直方图 和 灰度直方图 原理是一样的,彩色直方图需要计算三个通道
# -*- encoding utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import matplotlib.pyplot as plt
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simhei.ttf')
# 设置中文字体img_bgr_data = cv2.imread('D:\\aaresult\\NLM.jpg')
# plt.figure(figsize=(15, 15))
# plt.title("r")
# 设置画布的大小
# plt.hist(img_bgr_data[:, :, 0].ravel(), bins=50, color='b')plt.figure(figsize=(4, 4))
histr = cv2.calcHist([img_bgr_data], [0], None, [256], [0, 256])
plt.plot(histr, color='r',label = "r通道")
# plt.title('色度校正后图片r通道直方图',fontproperties=zhfont1)
plt.xlabel('r通道像素强度值',fontproperties=zhfont1)
plt.ylabel('像素个数',fontproperties=zhfont1)
plt.legend(prop=zhfont1,loc=2)
# 2代表左上
plt.xlim(0, 256)
# plt.savefig('D:\\aaresult\\fit.pdf')# 打印图片,论文建议pdfg格式
plt.show()plt.figure(figsize=(4, 4))
histr = cv2.calcHist([img_bgr_data], [1], None, [256], [0, 256])
plt.plot(histr, color='g',label = "g通道")
# plt.title('色度校正后图片r通道直方图',fontproperties=zhfont1)
plt.xlabel('g通道像素强度值',fontproperties=zhfont1)
plt.ylabel('像素个数',fontproperties=zhfont1)
plt.legend(prop=zhfont1,loc=2)
# 2代表左上
plt.xlim(0, 256)
# plt.savefig('D:\\aaresult\\fit.pdf')# 打印图片,论文建议pdfg格式
plt.show()plt.figure(figsize=(4, 4))
histr = cv2.calcHist([img_bgr_data], [2], None, [256], [0, 256])
plt.plot(histr, color='b',label = "b通道")
# plt.title('色度校正后图片r通道直方图',fontproperties=zhfont1)
plt.xlabel('b通道像素强度值',fontproperties=zhfont1)
plt.ylabel('像素个数',fontproperties=zhfont1)
plt.legend(prop=zhfont1,loc=2)
# 2代表左上
plt.xlim(0, 256)
# plt.savefig('D:\\aaresult\\fit.pdf')# 打印图片,论文建议pdfg格式
plt.show()
# plt.figure(figsize=(15, 15))
# plt.hist(img_bgr_data[:, :, 1].ravel(), bins=50, color='g')# plt.figure(figsize=(5, 5))
# plt.hist(img_bgr_data[:, :, 2].ravel(), bins=50, color='r')
# plt.show()
cv2.waitKey(0)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部