九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
python+opencv圖像處理(十四)
圖像直方圖
1、灰度圖像的直方圖
灰度圖像的直方圖是灰度級和這種灰度級的概率之間關(guān)系的圖形。
直接看圖,下圖中左側(cè)是原圖,右圖為其直方圖。

完整代碼如下:

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

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

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

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

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

   plt.plot(hist,'r')

   plt.show()

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

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

------------------------------我是廣告開始的分隔線

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

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

其代碼如下:

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 #用來正常顯示負(fù)號

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

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

    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、掩膜直方圖
圖像的掩膜就是用選定的圖像、圖形或物體,對處理的圖像進(jìn)行遮擋,來控制圖像處理的區(qū)域或處理過程。
還是先上圖:

其完整代碼如下:

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 #用來正常顯示負(fù)號

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

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

plt.xlim([0,256])

plt.tight_layout()

plt.show()

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
大家都在問
OpenCV計(jì)算機(jī)視覺學(xué)習(xí)(9)圖像直方圖&直方圖均衡化
老外講解什么是直方圖以及如何用opencv繪制直方圖(譯文)
OpenCV機(jī)器視覺詳解之圖像匹配、直方圖、圖像均衡化
【從零學(xué)習(xí)OpenCV 4】圖像直方圖繪制
Python Opencv進(jìn)行識(shí)別相似圖片
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服