zoukankan      html  css  js  c++  java
  • python 图像直方图

    最近要搞图像处理,要做直方图,老师用MFC弄了一大坨代码看着真心蛋疼。。。正好这一段在学python,就拿来用了,非常方便强大,核心代码就几行~

    用了三个模块,PIL,numpy和matplotlib

    第一行加一句这个,基本完美解决中文字体问题

    #-*- coding: utf-8 -*-

    代码:

     1 #-*- coding: utf-8 -*-
     2 import PIL.Image as Image
     3 import numpy as np
     4 import matplotlib.pyplot as pl
     5 import matplotlib.image as mpimg
     6 from matplotlib.font_manager import FontProperties
     7 import win32ui
     8 font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
     9 dlg = win32ui.CreateFileDialog(1) 
    10 dlg.SetOFNInitialDir('H:\desk\Py_Study\新建文件夹')
    11 dlg.DoModal()
    12  
    13 filename = dlg.GetPathName()  
    14 o_img = Image.open(filename)
    15 img1 = o_img.convert('RGB')
    16 a = np.asarray(img1)   #转存成RGB‘数组’
    17 ax1 = pl.subplot(321)  #划分成5块
    18 ax2 = pl.subplot(322) 
    19 ax3 = pl.subplot(323)
    20 ax4 = pl.subplot(324)
    21 ax5 = pl.subplot(313)
    22 
    23 pl.sca(ax1)
    24 pl.xlabel(u'蓝色', fontproperties = font)
    25 pl.hist(a[:,:,0].flatten(),bins = 256, histtype = "step", color = 'blue')  # blue
    26 pl.sca(ax2)
    27 pl.xlabel(u'绿色', fontproperties = font)
    28 pl.hist(a[:,:,1].flatten(),bins = 256, histtype = "step", color = 'green')  # green
    29 pl.sca(ax3)
    30 pl.xlabel(u'红色', fontproperties = font)
    31 pl.hist(a[:,:,2].flatten(),bins = 256, histtype = "step", color = 'red')  # red
    32 pl.sca(ax4)
    33 pl.xlabel(u'灰度', fontproperties = font)
    34 pl.hist(a[:,:,2].flatten() * 0.299 + a[:,:,1].flatten() * 0.587 + a[:,:,0].flatten() * 0.114 ,bins=256, histtype="step", color = 'gray')
    35 pl.sca(ax5)
    36 pl.imshow(o_img)
    37 pl.show() 

    效果:

  • 相关阅读:
    「Codeforces 79D」Password
    「算法笔记」BSGS
    「Codeforces 468C」Hack it!
    「算法笔记」快速傅里叶变换(FFT)
    「算法笔记」2-SAT 问题
    「算法笔记」基础数论 2
    《算法笔记》二分—木棒切割问题&求凸多边形外接圆最大半径
    《算法笔记》区间贪心
    《算法笔记》PAT B1020 月饼、PAT B1023 组个最小数
    《算法笔记》n皇后问题
  • 原文地址:https://www.cnblogs.com/xdruid/p/3111675.html
Copyright © 2011-2022 走看看