国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV官方教程中文版 —— 直方圖均衡化

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV官方教程中文版 —— 直方圖均衡化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

本小節(jié)我們要學(xué)習(xí)直方圖均衡化的概念,以及如何使用它來(lái)改善圖片的對(duì)比。

一、原理

想象一下如果一副圖像中的大多是像素點(diǎn)的像素值都集中在一個(gè)像素值范圍之內(nèi)會(huì)怎樣呢?例如,如果一幅圖片整體很亮,那所有的像素值應(yīng)該都會(huì)很高。但是一副高質(zhì)量的圖像的像素值分布應(yīng)該很廣泛。所以你應(yīng)該把它的直方圖做一個(gè)橫向拉伸(如下圖),這就是直方圖均衡化要做的事情。通常情況下這種操作會(huì)改善圖像的對(duì)比度。

OpenCV官方教程中文版 —— 直方圖均衡化,opencv,人工智能,計(jì)算機(jī)視覺(jué)

推薦你去讀讀維基百科中關(guān)于直方圖均衡化的條目。其中的解釋非常給力,讀完之后相信你就會(huì)對(duì)整個(gè)過(guò)程有一個(gè)詳細(xì)的了解了。我們先看看怎樣使用Numpy 來(lái)進(jìn)行直方圖均衡化,然后再學(xué)習(xí)使用 OpenCV 進(jìn)行直方圖均衡化。

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('wiki.png', 0)
# flatten() 將數(shù)組變成一維
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
# 計(jì)算累積分布圖
plt.figure()
plt.subplot(1,2,1)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.tight_layout()
plt.subplot(1,2,2)
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
plt.plot(cdf_normalized, color='b')
plt.hist(img.flatten(), 256, [0, 256], color='r')
plt.xlim([0, 256])
plt.legend(('cdf', 'histogram'), loc='upper left')
plt.tight_layout()
plt.show()

OpenCV官方教程中文版 —— 直方圖均衡化,opencv,人工智能,計(jì)算機(jī)視覺(jué)
我們可以看出來(lái)直方圖大部分在灰度值較高的部分,而且分布很集中。而我們希望直方圖的分布比較分散,能夠涵蓋整個(gè) x 軸。所以,我們就需要一個(gè)變換函數(shù)幫助我們把現(xiàn)在的直方圖映射到一個(gè)廣泛分布的直方圖中。這就是直方圖均衡化要做的事情。

圖均衡化要做的事情。我們現(xiàn)在要找到直方圖中的最小值(除了 0),并把它用于 wiki 中的直方圖均衡化公式。但是我在這里使用了 Numpy 的掩模數(shù)組。對(duì)于掩模數(shù)組的所有操作都只對(duì) non-masked 元素有效。你可以到 Numpy 文檔中獲取更多掩模數(shù)組的信息。

# 構(gòu)建 Numpy 掩模數(shù)組,cdf 為原數(shù)組,當(dāng)數(shù)組元素為 0 時(shí),掩蓋(計(jì)算時(shí)被忽略)。
cdf_m = np.ma.masked_equal(cdf,0)
cdf_m = (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min())
# 對(duì)被掩蓋的元素賦值,這里賦值為 0
cdf = np.ma.filled(cdf_m,0).astype('uint8')

現(xiàn)在就獲得了一個(gè)表,我們可以通過(guò)查表得知與輸入像素對(duì)應(yīng)的輸出像素的值。我們只需要把這種變換應(yīng)用到圖像上就可以了。

img2 = cdf[img]

我們?cè)俑鶕?jù)前面的方法繪制直方圖和累積分布圖,結(jié)果如下:

OpenCV官方教程中文版 —— 直方圖均衡化,opencv,人工智能,計(jì)算機(jī)視覺(jué)
另一個(gè)重要的特點(diǎn)是,即使我們的輸入圖片是一個(gè)比較暗的圖片(不象上邊我們用到到的整體都很亮的圖片),在經(jīng)過(guò)直方圖均衡化之后也能得到相同的結(jié)果。因此,直方圖均衡化經(jīng)常用來(lái)使所有的圖片具有相同的亮度條件的參考工具。這在很多情況下都很有用。例如,臉部識(shí)別,在訓(xùn)練分類(lèi)器前,訓(xùn)練集的所有圖片都要先進(jìn)行直方圖均衡化從而使它們達(dá)到相同的亮度條件。

二、 OpenCV 中的直方圖均衡化

OpenCV 中的直方圖均衡化函數(shù)為 cv2.equalizeHist()。這個(gè)函數(shù)的輸入圖片僅僅是一副灰度圖像,輸出結(jié)果是直方圖均衡化之后的圖像。

下邊的代碼還是對(duì)上邊的那幅圖像進(jìn)行直方圖均衡化:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('wiki.png', 0)
equ = cv2.equalizeHist(img)
res = np.hstack((img, equ))

plt.figure()
plt.imshow(res, cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()

OpenCV官方教程中文版 —— 直方圖均衡化,opencv,人工智能,計(jì)算機(jī)視覺(jué)

現(xiàn)在你可以拿一些不同亮度的照片自己來(lái)試一下了。

當(dāng)直方圖中的數(shù)據(jù)集中在某一個(gè)灰度值范圍內(nèi)時(shí),直方圖均衡化很有用。但是如果像素的變化很大,而且占據(jù)的灰度范圍非常廣時(shí),例如:既有很亮的像素點(diǎn)又有很暗的像素點(diǎn)時(shí)。

三、 CLAHE 有限對(duì)比適應(yīng)性直方圖均衡化

我們?cè)谏线呑龅闹狈綀D均衡化會(huì)改變整個(gè)圖像的對(duì)比度,但是在很多情況下,這樣做的效果并不好。例如,下圖分別是輸入圖像和進(jìn)行直方圖均衡化之后的輸出圖像。

OpenCV官方教程中文版 —— 直方圖均衡化,opencv,人工智能,計(jì)算機(jī)視覺(jué)

的確在進(jìn)行完直方圖均衡化之后,圖片背景的對(duì)比度被改變了。但是你再對(duì)比一下兩幅圖像中雕像的面圖,由于太亮我們丟失了很多信息。造成這種結(jié)果的根本原因在于這幅圖像的直方圖并不是集中在某一個(gè)區(qū)域(試著畫(huà)出它的直方圖,你就明白了)。

為了解決這個(gè)問(wèn)題,我們需要使用自適應(yīng)的直方圖均衡化。這種情況下,整幅圖像會(huì)被分成很多小塊,這些小塊被稱為“tiles”(在 OpenCV 中 tiles 的大小默認(rèn)是 8x8),然后再對(duì)每一個(gè)小塊分別進(jìn)行直方圖均衡化(跟前面類(lèi)似)。所以在每一個(gè)的區(qū)域中,直方圖會(huì)集中在某一個(gè)小的區(qū)域中(除非有噪聲干擾)。如果有噪聲的話,噪聲會(huì)被放大。為了避免這種情況的出現(xiàn)要使用對(duì)比度限制。對(duì)于每個(gè)小塊來(lái)說(shuō),如果直方圖中的 bin 超過(guò)對(duì)比度的上限的話,就把其中的像素點(diǎn)均勻分散到其他 bins 中,然后在進(jìn)行直方圖均衡化。最后,為了去除每一個(gè)小塊之間“人造的”(由于算法造成)邊界,再使用雙線性差值,對(duì)小塊進(jìn)行縫合。

下面的代碼顯示了如何使用 OpenCV 中的 CLAHE。

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('tsukuba_l.png', 0)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
cl1 = clahe.apply(img)
res = np.hstack((img, cl1))
plt.figure()
plt.imshow(res, cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()

下面就是結(jié)果了,與前面的結(jié)果對(duì)比一下,尤其是雕像區(qū)域:
OpenCV官方教程中文版 —— 直方圖均衡化,opencv,人工智能,計(jì)算機(jī)視覺(jué)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-741971.html

到了這里,關(guān)于OpenCV官方教程中文版 —— 直方圖均衡化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OpenCV官方教程中文版 —— 圖像金字塔

    OpenCV官方教程中文版 —— 圖像金字塔

    ? 學(xué)習(xí)圖像金字塔 ? 使用圖像創(chuàng)建一個(gè)新水果:“橘子蘋(píng)果” ? 將要學(xué)習(xí)的函數(shù)有:cv2.pyrUp(),cv2.pyrDown()。 一般情況下,我們要處理是一副具有固定分辨率的圖像。但是有些情況下,我們需要對(duì)同一圖像的不同分辨率的子圖像進(jìn)行處理。比如,我們要在一幅圖像中查找某

    2024年02月07日
    瀏覽(91)
  • OpenCV官方教程中文版 —— Hough 圓環(huán)變換

    OpenCV官方教程中文版 —— Hough 圓環(huán)變換

    目標(biāo) ? 學(xué)習(xí)使用霍夫變換在圖像中找圓形(環(huán)) ? 學(xué)習(xí)函數(shù):cv2.HoughCircles() opencv_logo.png :

    2024年02月06日
    瀏覽(21)
  • BeeWare官方教程中文版

    BeeWare官方教程中文版

    BeeWare官方教程 中文文檔下載地址 以下內(nèi)容為按照教程在windows平臺(tái)測(cè)試。 如果你使用Windows系統(tǒng),可以從python官網(wǎng)獲取官方安裝包??梢允褂?.7之后的任何穩(wěn)定版本的Python。建議避免使用阿爾法,貝塔和其他已經(jīng)發(fā)布的候選版本。 在Windows系統(tǒng)上構(gòu)建BeeWare 需要: Git,一種分

    2024年02月05日
    瀏覽(23)
  • Midjourney中文版到底是官方還是李鬼?

    Midjourney中文版到底是官方還是李鬼?

    AI繪畫(huà)大神Midjourney為何選擇QQ頻道進(jìn)軍中國(guó)市場(chǎng)? Midjourney中文版到底是官方還是李鬼?看這篇文章就知道了! 今天我想和大家聊聊一個(gè)最近很火的話題,那就是AI繪畫(huà)神器Midjourney(簡(jiǎn)稱MJ)來(lái)中國(guó)了,QQ頻道內(nèi)測(cè)火爆開(kāi)啟。這對(duì)于喜歡AI繪畫(huà)的創(chuàng)作者來(lái)說(shuō),無(wú)疑是一個(gè)福音,

    2024年02月12日
    瀏覽(21)
  • 《巧克甜戀》官方中文版全解鎖存檔分享

    《巧克甜戀》官方中文版全解鎖存檔分享

    因?yàn)橹靶迯?fù)更新英文版后補(bǔ)丁失效的問(wèn)題一不小心把存檔刪了,遂意識(shí)到了存檔的重要性,也特此分享給需要的朋友。 全解鎖存檔下載

    2024年02月12日
    瀏覽(127)
  • 爆肝一周,我開(kāi)源了ChatGPT 中文版接口,官方1:1鏡像支持全部 官方接口

    這里實(shí)現(xiàn)我之前文章承諾承接上文 人人實(shí)現(xiàn)ChatGPT自由,手把手教你零擼部署自己聊天私服 現(xiàn)在 ChatGPT 提供了 api 接口 可以讓我自己對(duì)接去實(shí)現(xiàn)我們自己想要gpt應(yīng)用,但是由于一些原因,國(guó)內(nèi)也不開(kāi)放接口,所以我就1:1 自己對(duì)接了官方所有接口。 大家可以通過(guò)我的接口輕松

    2024年02月04日
    瀏覽(22)
  • FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows/mac官方中文版

    FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows/mac官方中文版

    FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows/mac官方中文版是一個(gè)完整的軟件音樂(lè)制作環(huán)境或數(shù)字音頻工作站(DAW)。它代表了 25 多年的創(chuàng)新發(fā)展,將您創(chuàng)作、編曲、錄制、編輯、混音和掌握專(zhuān)業(yè)品質(zhì)音樂(lè)所需的一切集于一身。 FL S

    2024年02月14日
    瀏覽(28)
  • Postman -中文版-安裝教程

    Postman -中文版-安裝教程

    一.下載、安裝? Postman 下面是歷史版本的下載鏈接地址? ? 請(qǐng)把鏈接中的\\\"版本號(hào)\\\"替換為指定的版本號(hào)(根據(jù)自己的需求變更) Windows64位 : https://dl.pstmn.io/download/version/版本號(hào)/win64 Windows32位: https://dl.pstmn.io/download/version/版本號(hào)/win32 Mac : https://dl.pstmn.io/download/version/版本號(hào)

    2024年02月03日
    瀏覽(34)
  • Midjourney AI 官方中文版已開(kāi)啟內(nèi)測(cè)申請(qǐng);OpenAI 正準(zhǔn)備向公眾發(fā)布一款新的開(kāi)源語(yǔ)言模型。

    Midjourney AI 官方中文版已開(kāi)啟內(nèi)測(cè)申請(qǐng);OpenAI 正準(zhǔn)備向公眾發(fā)布一款新的開(kāi)源語(yǔ)言模型。

    ?? Midjourney AI 官方中文版已開(kāi)啟內(nèi)測(cè)申請(qǐng),搭載在 QQ 頻道上,召喚機(jī)器人進(jìn)行作畫(huà)。 Midjourney AI 官方中文版已開(kāi)啟內(nèi)測(cè)申請(qǐng),搭載在 QQ 頻道上,召喚機(jī)器人進(jìn)行作畫(huà)。 可調(diào)用 MJ 和 Niji 的最新模型和所有參數(shù),還上線了放大、變化、指定修改、墊圖、私聊、個(gè)人畫(huà)廊等功能

    2024年02月15日
    瀏覽(21)
  • STM32CubeIDE中文版教程

    STM32CubeIDE中文版教程

    STM32CubeIDE中文版教程 首先 https://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/ 點(diǎn)擊此網(wǎng)址進(jìn)入 如圖,選擇日期最新的,點(diǎn)進(jìn)去 再次選擇最新的日期 進(jìn)入到此界面,復(fù)制此時(shí)的網(wǎng)址? https://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/R0.20.0/2022-12/ 打開(kāi)STM32CubeIDE help-Install New Sof

    2024年02月07日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包