搜尋
首頁後端開發Python教學使用 OpenCv 製作簡單的點畫。

簡介
開源電腦視覺庫 (OpenCV) 提供免費的程式設計工具來處理影像或影片檔案等視覺輸入。它包含許多現成的函數,可以透過不同的程式語言存取。我在這裡發布的範例使用 python。因此,如果你想理解程式碼,你至少需要有Python和NumPy的基礎知識。如果您正在尋找 OpenCV 的介紹,此連結可能非常有價值:[https://dev.to/arpitmandliya/opencv-python-tutorial-3dac]。

像素如何構成影像
在大多數情況下,電腦影像是基於 RGB(Opencv 中的 BGR)模型。這表示像素顏色是 Red、Green 和 Blue 組成的混合。還有其他模型(例如,Hue、Saturation 和Value)和向量圖形(SVG 或PDF),但我不會解釋它們他們在這裡。

電腦上的圖像可以被描述為像素的集合,其中包含顏色資訊。用更專業的術語來說,圖像是三維陣列(或具有三個顏色通道的像素矩陣),前兩個維度確定圖像的大小(高度和寬度),第三個維度包含紅色、綠色的值和藍色(每種顏色的值在0 到255 之間)。如果一張影像只有一個色彩通道(8 位元影像),則它是具有不同灰階值的灰階影像,範圍從 0(黑色)到 255(白色)。 圖 1 說明了這一點。

Making a simple pointillism painting using OpenCv.
圖 1:影像表示為陣列。右側是彩色影像的範例,其中紅色、綠色和藍色的值範圍為 0 到 255(0,0,255 為藍色)。左邊是一個灰階影像,其中一個通道代表不同的灰階。

將顏色資訊轉換為不同大小的點
上述原理可用於使用 NumPy 和 OpenCV 函式庫在 Python 中執行影像編輯。在此範例中,我使用循環來處理表示為 NumPy 數組的圖像。該循環不會迭代圖像中的每個像素,而是定期跳過像素(例如,它處理每 10 個像素)。每個處理像素處的灰階值用於確定點的大小(例如,灰階值 100 對應於特定的點大小)。然後使用原始影像的色彩資訊將這些點繪製在原始影像的空白副本上。總而言之,我創建了一個圖像副本,其中根據原始像素的顏色資訊繪製了不同大小的點(請參閱圖 2)。

Making a simple pointillism painting using OpenCv.
圖 2:為了繪製點,使用原始影像中像素的顏色資訊。為了確定點的大小,使用原始影像的灰階版本。

下面是程式碼,可能的結果如圖 3 所示。

Making a simple pointillism painting using OpenCv.
圖 3:右側顯示原始影像,左側顯示基於此處提供的程式碼的虛線版本。

我希望我以全面的方式呈現了程式碼,並且有人可能會發現它有用。如果你願意的話,可以試試看。用矩形替換圓形,選擇不同大小的圓形,更改循環步長的值等,看看會發生什麼。

以上是使用 OpenCv 製作簡單的點畫。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
列表和陣列之間的選擇如何影響涉及大型數據集的Python應用程序的整體性能?列表和陣列之間的選擇如何影響涉及大型數據集的Python應用程序的整體性能?May 03, 2025 am 12:11 AM

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

說明如何將內存分配給Python中的列表與數組。說明如何將內存分配給Python中的列表與數組。May 03, 2025 am 12:10 AM

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

您如何在Python數組中指定元素的數據類型?您如何在Python數組中指定元素的數據類型?May 03, 2025 am 12:06 AM

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。

什麼是Numpy,為什麼對於Python中的數值計算很重要?什麼是Numpy,為什麼對於Python中的數值計算很重要?May 03, 2025 am 12:03 AM

NumPyisessentialfornumericalcomputinginPythonduetoitsspeed,memoryefficiency,andcomprehensivemathematicalfunctions.1)It'sfastbecauseitperformsoperationsinC.2)NumPyarraysaremorememory-efficientthanPythonlists.3)Itoffersawiderangeofmathematicaloperation

討論'連續內存分配”的概念及其對數組的重要性。討論'連續內存分配”的概念及其對數組的重要性。May 03, 2025 am 12:01 AM

Contiguousmemoryallocationiscrucialforarraysbecauseitallowsforefficientandfastelementaccess.1)Itenablesconstanttimeaccess,O(1),duetodirectaddresscalculation.2)Itimprovescacheefficiencybyallowingmultipleelementfetchespercacheline.3)Itsimplifiesmemorym

您如何切成python列表?您如何切成python列表?May 02, 2025 am 12:14 AM

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

在Numpy陣列上可以執行哪些常見操作?在Numpy陣列上可以執行哪些常見操作?May 02, 2025 am 12:09 AM

numpyallowsforvariousoperationsonArrays:1)basicarithmeticlikeaddition,減法,乘法和division; 2)evationAperationssuchasmatrixmultiplication; 3)element-wiseOperations wiseOperationswithOutexpliitloops; 4)

Python的數據分析中如何使用陣列?Python的數據分析中如何使用陣列?May 02, 2025 am 12:09 AM

Arresinpython,尤其是Throughnumpyandpandas,weessentialFordataAnalysis,offeringSpeedAndeffied.1)NumpyArseNable efflaysenable efficefliceHandlingAtaSetSetSetSetSetSetSetSetSetSetSetsetSetSetSetSetsopplexoperationslikemovingaverages.2)

See all articles

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),