久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python+opencv圖像處理(十四)

 pythonjava學(xué)習(xí) 2021-04-06
圖像直方圖
1、灰度圖像的直方圖
灰度圖像的直方圖是灰度級(jí)和這種灰度級(jí)的概率之間關(guān)系的圖形。
直接看圖,下圖中左側(cè)是原圖,,右圖為其直方圖。

完整代碼如下:

import cv2 as cv

import matplotlib.pyplot as plt

def his(img,b):#matplotlib畫(huà)圖

    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()

也可以用opencv自帶的函數(shù)calcHist()來(lái)畫(huà)直方圖,,結(jié)果如下所示:

我只貼了自定義的函數(shù)代碼如下:

def his(img,bin):#基于opencv API畫(huà)

   hist = cv.calcHist([img],[0],None,[256],[0,255])

   plt.plot(hist,'r')

   plt.show()

此段函數(shù)的調(diào)用過(guò)程和上面的代碼是一樣一樣的,。
函數(shù)calcHist()的使用方法百度一搜一大把

------------------------------代碼理解了嗎,休息一下吧

------------------------------我是廣告開(kāi)始的分隔線(xiàn)

--------------------------------我是廣告結(jié)束的分隔線(xiàn)

2,、彩色圖像的直方圖
灰度圖像只有一個(gè)通道,,一般我們畫(huà)的是灰度圖像的直方圖。
如果要畫(huà)彩色圖像的直方圖,,因?yàn)椴噬珗D像有三個(gè)通道,其實(shí)就是將三個(gè)通道分別來(lái)畫(huà)直方圖并疊加在一起即可,。
如下例所示:

其代碼如下:

import cv2 as cv

import matplotlib.pyplot as plt

import matplotlib as mpl

mpl.rcParams['font.sans-serif']=['SimHei'] #指定默認(rèn)字體 SimHei為黑體

mpl.rcParams['axes.unicode_minus']=False #用來(lái)正常顯示負(fù)號(hào)

def image_hist(image):     #畫(huà)三通道圖像的直方圖

    color = ('b', 'g', 'r')   #這里畫(huà)筆顏色的值可以為大寫(xiě)或小寫(xiě)或只寫(xiě)首字母或大小寫(xiě)混合

    for i , color in enumerate(color):

        hist = cv.calcHist([image], [i], None, [256], [0, 256])  #計(jì)算直方圖

        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()

3、掩膜直方圖
圖像的掩膜就是用選定的圖像,、圖形或物體,,對(duì)處理的圖像進(jìn)行遮擋,,來(lái)控制圖像處理的區(qū)域或處理過(guò)程。
還是先上圖:

其完整代碼如下:

import cv2 as cv

import numpy as np

import matplotlib.pyplot as plt

import matplotlib as mpl

mpl.rcParams['font.sans-serif']=['SimHei'] #指定默認(rèn)字體 SimHei為黑體

mpl.rcParams['axes.unicode_minus']=False #用來(lái)正常顯示負(fù)號(hào)

img = cv.imread('E:\\image\\lena.jpg', 0)

# create a mask  應(yīng)用掩膜

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])#畫(huà)原圖的直方圖

hist_mask = cv.calcHist([img], [0], mask, [256], [0,256])#畫(huà)掩膜的直方圖

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("紅色為原圖直方圖,,藍(lán)色為掩膜的直方圖")

plt.xlim([0,256])

plt.tight_layout()

plt.show()

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多