【計算機視覺(8)】

基于Python的OpenCV基礎入門——圖像直方圖

  • 直方圖
    • 圖像直方圖
  • 圖像直方圖代碼以及實現效果

直方圖

直方圖是一種用于描述圖像亮度分布的統計工具。它將圖像的像素亮度值按照不同的亮度等級進行計數,并以直方圖的形式呈現出來。圖像直方圖可以顯示圖像中每個亮度級別的像素數量,從而用于分析圖像的亮度分布情況。

圖像直方圖

hist = cv2.calcHist([img], [channels], Mask, [histSize], ranges)
參數:
[img]: 必須用方括號括起來,表示被計算的圖像,可以是多幅。
[channels]: 用于計算直方圖的通道,這里使用灰度圖計算直方圖,所以就直接使用第一個通道,多幅圖像相當于多通道;
Mask: 與原圖維度相同,被計算的區域,1 計算,0 不計算,不使用該參數用 None。
[histSize]: 表示這個直方圖分成多少份(即多少個直方柱的數量)。
ranges: 表示直方圖中各個像素的值,[0.0, 256.0]表示直方圖能表示像素值從 0.0 到 256 的像素。

圖像直方圖代碼以及實現效果

import cv2  
import matplotlib.pyplot as pltimg = cv2.imread("img/cat.jpg")  img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #將BGR 格式轉換為RGB 格式  # 繪制圖像直方圖  
plt.subplot(2,1,1) # 2 * 1布局的 上面   
hist1=plt.hist(img.ravel(), 256, [0, 256]) #numpy 的ravel 函數功能是將多維數組降為一維數組  # 畫三通道圖像的折線圖  
plt.subplot(2,1,2)  
color = ('b', 'g', 'r') #這里畫筆顏色的值可以為大寫或小寫或只寫首字母或大小寫混合  
for i , color in enumerate(color):   hist = cv2.calcHist([img], [i], None, [256], [0, 256]) #計算直方圖  plt.plot(hist, color)  plt.xlim([0, 256])  plt.show()

圖像直方圖的實現效果如下:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23585.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

點擊式的excel電子表格查找修改功能,比xlookup和vlookup簡單,多列關聯查詢速度更快

經過實際測試,excel的xlookup確實非常簡單,有部分功能也非常快。但是有的人不會公式,或者不喜歡用公式,或者沒有excel2021以上的版本。而且xlookup確實也有些還不是很完美的地方,比如對多列關聯查詢很慢。所以我們還是…

MVC前端怎么寫:深入解析與實戰指南

MVC前端怎么寫:深入解析與實戰指南 在Web開發領域,MVC(Model-View-Controller)是一種廣泛使用的架構模式,它將應用程序的數據、界面和控制邏輯分離,使得代碼更加清晰、易于維護。本文將詳細探討MVC前端如何…

selenium非全新的方式同時啟動多個瀏覽器又互不影響的一種實現方法,歡迎討論!

最近在做模擬瀏覽器批量定時自動點擊實現批量操作功能,主要使用selenium,但是發現selenium直接調用本地瀏覽器,啟動的是一個全新的(與手動打開的不一致),網站可以檢測到,每次都要雙重驗證(密碼登…

Windows系統中不同Java版本共存

Windows系統中不同Java版本共存的方法 在Windows系統中,有時我們需要同時運行多個Java應用,而這些應用可能依賴于不同版本的Java Development Kit (JDK) 或 Java Runtime Environment (JRE)。為了實現這種需求,我們需要在Windows中配置多個J…

我應該如何使用 Python 的 NLTK 庫進行詞頻統計?

使用Python的NLTK(Natural Language Toolkit)庫進行詞頻統計,你可以遵循以下步驟: 安裝NLTK庫: 如果你還沒有安裝NLTK,可以通過pip安裝: pip install nltk導入必要的模塊: 在Python腳…

電商APP用戶體驗提升技巧:一個實戰案例

隨著網絡和移動技術的快速發展,加上全球疫情的影響,電子商務應用程序改變了人們的購物方式,積累了大量的用戶群體。如今,一個成功的電子商務應用程序,除了網站用戶界面的美,電子商務用戶體驗的設計&#xf…

深度學習筆記: 最詳盡LinkedIn Feed 排名系統設計

歡迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有問題可以隨時與我交流, 謝謝大家! LinkedIn Feed 排名 1. 問題陳述 設計一個個性化的LinkedIn Feed,以最大化用戶的長期參與度…

Typecho:簡約而強大的開源PHP博客平臺

Typecho:讓博客寫作回歸本質- 精選真開源,釋放新價值。 概覽 Typecho是一個開源的PHP博客平臺,以其簡潔的界面和強大的功能,為博客作者提供了一個高效、易于管理的寫作環境。它是一個輕量級、高性能的解決方案,適用于…

【TensorFlow深度學習】Adam優化器的工作原理與配置細節

Adam優化器的工作原理與配置細節 Adam優化器的工作原理與配置細節:深度學習優化藝術的精粹Adam優化器的原理探秘配置細節:細調Adam的超參數實戰演練:使用Keras配置Adam優化器總結與進階 Adam優化器的工作原理與配置細節:深度學習優…

xgboost導出為pmml模型包

機器學習模型使用時需要導出后部署在線使用,有些項目需要pmml格式,兩種方法,第二種成本更低。 一、什么是PMML PMML(Predictive Model Markup Language):預測模型標記語言,它用XML格式來描述生成的機器學習模型&…

python的df.describe()函數

一、初識describe()函數 在數據分析和處理的過程中,我們經常需要了解數據的基本統計信息,如均值、標準差、最小值、最大值等。pandas庫中的describe()函數為我們提供了這樣的功能,它可以快速生成數據集的描述性統計信息。 二、describe()函數的基本用法 describe()函數是pan…

探索Python裝飾器:優雅地增強函數功能

Python 裝飾器是一種高級功能,允許你在不修改原始函數代碼的情況下,動態地修改或擴展函數的行為。 基本語法 裝飾器是一種特殊的函數,其基本語法如下: def decorator_function(func):def wrapper(*args, **kwargs):# 在調用原始…

【WP|9】深入解析WordPress [add_shortcode]函數

add_shortcode 是 WordPress 中一個非常強大的函數,用于創建自定義的短代碼(shortcodes)。短代碼是一種簡潔的方式,允許用戶在內容中插入動態的、可重用的功能。通過 add_shortcode,開發者可以定義自己的短代碼&#x…

【MMU】——MMU 相關的 CP15 寄存器

文章目錄 MMU 相關的 CP15 寄存器C1(System Control Register)C2(Translation Table Base Control Register)C3(Domain Access Control Register)C5(Data Fault Status Register)C6(Data Fault Address Register)C9C10MMU 相關的 CP15 寄存器 寄存器作用寄存器 C1 中…

前端開發環境:Vue、Element Plus、Axios

目錄 1. Vue簡介 2. Element Plus簡介 3. Axios簡介 4. 創建Vue項目 4.1 Node.js安裝 4.2 創建Vue項目 4.3 Vue項目的結構 4.4 安裝Element-Plus 4.5 安裝Axios 4.6 解決跨域問題 5. 應用實例 5.1 創建Vue組件 5.2 配置路由 5.3 配置根組件 5.4 啟動前端應用服…

Vue 爺孫組件通訊之:Provide / Inject 詳細介紹

背景 在父子組件傳遞數據時,通常使用的是 props 和 emit,父傳子時,使用的是 props,如果是父組件傳孫組件時,層層傳遞非常麻煩。 對于這種情況,我們可以使用一對 provide 和 inject。無論組件層次結構有多深…

在不受支持的 Mac 上安裝 macOS Sonoma (OpenCore Legacy Patcher v1.5.0)

在不受支持的 Mac 上安裝 macOS Sonoma (OpenCore Legacy Patcher v1.5.0) Install macOS on unsupported Macs 請訪問原文鏈接:https://sysin.org/blog/install-macos-on-unsupported-mac/,查看最新版。原創作品,轉載請保留出處。 作者主…

【leetcode--30.串聯所有單詞的子串】

有沒有一樣喜歡看示例的,,看題目就覺得很難懂。大致就是words要進行排列組合,返回s中所有包含這個排列組合的首標。 順完邏輯蠻好懂的,應該不算困難題,只是不知道用什么模塊實現。 class Solution:def findSubstring…

如何利用Varjo混合現實技術改變飛機維修訓練方式

自2017年以來,總部位于休斯頓的HTX實驗室一直在推進混合現實技術,與美國空軍密切合作,通過其EMPACT平臺提供可擴展的沉浸式飛機維護虛擬現實培訓。 虛擬和混合現實對維修訓練的好處: l 實踐技能:提供一個非常接近真實場…

【C++題解】1074 - 小青蛙回來了

問題:1074 - 小青蛙回來了 類型:需要找規律的循環 題目描述: 關于小青蛙爬井的故事,你應該早就聽過了:井深10 尺,小青蛙從井底向上爬,每個白天向上爬 3 尺,每個晚上又滑下來 2 尺&…