首頁 後端開發 Python教學 CV什麼是影像?

CV什麼是影像?

Dec 03, 2024 am 11:21 AM

在 Python 中的 CV2 上下文中,當您讀取映像時,它會儲存為 Y 和 X 座標的 2D 或 3D 數組,其中 uint8 值指示影像的顏色和亮度。術語 uint8 是指範圍從 0 到 255 的 8 位元無符號整數資料型別。它與紅、綠和藍 (RG​​B) 的 3 個通道結合,形成彩色影像。

為什麼這種結構很重要

如果您開始像普通數組一樣更改圖像的某些部分(例如,將其除以 3),您可能會丟失這種格式。例如,像素值可能超出 0 到 255 的範圍,導致影像無法使用。理解這種結構對於正確操作影像至關重要。

查看 CV2 中的影像

在 CV2 Python 庫中,您可以使用以下程式碼片段輕鬆查看圖像:

#pip install opencv-python # if not already installed 
import cv2

# Load an image
image = cv2.imread('./test.png')

# Display the image in a window
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
登入後複製
登入後複製

CVWhat is an Image?, Lets adjust the Brightness and Contrast of an image

上面的程式碼將打開一個彈出窗口,在您的電腦上顯示圖像。請隨意添加一個 url 到您自己的圖像中進行測試。 然後,您可以放大以觀察影像的像素級 RGB 值。這個基本功能是探索影像處理的一個很好的起點。

CVWhat is an Image?, Lets adjust the Brightness and Contrast of an image

亮度和對比度

什麼是亮度和對比度?

  • 亮度是指影像的整體亮度或暗度,由像素強度決定。
  • 對比度是指像素之間的強度與參考值(例如平均像素強度)的差異。它本質上是衡量影像中變化的“銳利”或“獨特”程度。

從數學上講,可以使用以下公式調整亮度和對比度:

new_image=對比×影像亮度

在 CV2 中應用亮度和對比度

OpenCV 中的 cv2.convertScaleAbs() 函數會自動執行此程序。它應用上面的公式,同時確保像素值保持在 0 到 255 的範圍內。

工作原理如下:

  • alpha(對比):縮放因子,通常在 0.0 到 3.0 之間。
  • beta(亮度):偏移值,通常在 -100 到 100 之間

用法範例:
new_image = cv2.convertScaleAbs(圖片, alpha=對比度, beta=亮度)

這使我們能夠輕鬆修改亮度和對比度,而無需手動剪切像素值。

image = cv2.imread('./test.png')
cv2.namedWindow('Adjustments')
contrast=0.8
brightness=89
image=cv2.convertScaleAbs(image, alpha=contrast, beta=brightness)
cv2.imshow('Adjustments', image) 
cv2.waitKey(0)
cv2.destroyAllWindows()

登入後複製

CVWhat is an Image?, Lets adjust the Brightness and Contrast of an image

使用回調創建互動式調整

雖然一次性調整很有用,但大多數時候,我們希望互動式地調整亮度和對比度。 OpenCV 允許我們使用軌跡欄來實現這一點。

Trackbars 可以使用 cv2.createTrackbar() 來創建,這讓我們可以動態調整值。一般語法是:
cv2.createTrackbar(trackbarname, winname, value, count, onChange_function)

  • trackbarname:軌跡列的名稱。
  • winname:將顯示軌跡列的 OpenCV 視窗的名稱。
  • value:軌跡欄的初始位置。
  • count:軌跡欄的最大值。
  • onChange_function:每當軌跡欄值改變時呼叫的回呼函數。

然後可以在 onChange_function 中呼叫這些軌跡欄;
cv2.getTrackbarPos(trackbarname, winname)
・trackbarname:軌跡欄的名稱
・ winname:將顯示軌跡列的 OpenCV 視窗的名稱。

要調整亮度和對比度,我們需要兩個軌跡欄。

#pip install opencv-python # if not already installed 
import cv2

# Load an image
image = cv2.imread('./test.png')

# Display the image in a window
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
登入後複製
登入後複製

CVWhat is an Image?, Lets adjust the Brightness and Contrast of an image

調整對比度和亮度滑桿會觸發 on_change 函數,該函數使用 cv2.getTrackbarPos() 從軌跡列讀取值。然後使用 cv2.convertScaleAbs 函數將這些值套用至影像,並即時顯示更新的影像。

為了使應用程式更加用戶友好,我在末尾添加了一個簡單的程式碼片段,以允許用戶透過按 x 鍵退出。這解決了 OpenCV 的一個常見問題,即關閉視窗並不總是會阻止程式碼運行。透過實現這一點,應用程式可確保乾淨退出,而不會出現延遲進程。

以上是CV什麼是影像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1430
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
Python與C:學習曲線和易用性 Python與C:學習曲線和易用性 Apr 19, 2025 am 12:20 AM

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

學習Python:2小時的每日學習是否足夠? 學習Python:2小時的每日學習是否足夠? Apr 18, 2025 am 12:22 AM

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。

Python vs.C:探索性能和效率 Python vs.C:探索性能和效率 Apr 18, 2025 am 12:20 AM

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

Python vs. C:了解關鍵差異 Python vs. C:了解關鍵差異 Apr 21, 2025 am 12:18 AM

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

Python標準庫的哪一部分是:列表或數組? Python標準庫的哪一部分是:列表或數組? Apr 27, 2025 am 12:03 AM

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python:自動化,腳本和任務管理 Python:自動化,腳本和任務管理 Apr 16, 2025 am 12:14 AM

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

科學計算的Python:詳細的外觀 科學計算的Python:詳細的外觀 Apr 19, 2025 am 12:15 AM

Python在科學計算中的應用包括數據分析、機器學習、數值模擬和可視化。 1.Numpy提供高效的多維數組和數學函數。 2.SciPy擴展Numpy功能,提供優化和線性代數工具。 3.Pandas用於數據處理和分析。 4.Matplotlib用於生成各種圖表和可視化結果。

Web開發的Python:關鍵應用程序 Web開發的Python:關鍵應用程序 Apr 18, 2025 am 12:20 AM

Python在Web開發中的關鍵應用包括使用Django和Flask框架、API開發、數據分析與可視化、機器學習與AI、以及性能優化。 1.Django和Flask框架:Django適合快速開發複雜應用,Flask適用於小型或高度自定義項目。 2.API開發:使用Flask或DjangoRESTFramework構建RESTfulAPI。 3.數據分析與可視化:利用Python處理數據並通過Web界面展示。 4.機器學習與AI:Python用於構建智能Web應用。 5.性能優化:通過異步編程、緩存和代碼優

See all articles