簡介
開源電腦視覺庫 (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 說明了這一點。
圖 1:影像表示為陣列。右側是彩色影像的範例,其中紅色、綠色和藍色的值範圍為 0 到 255(0,0,255 為藍色)。左邊是一個灰階影像,其中一個通道代表不同的灰階。
將顏色資訊轉換為不同大小的點
上述原理可用於使用 NumPy 和 OpenCV 函式庫在 Python 中執行影像編輯。在此範例中,我使用循環來處理表示為 NumPy 數組的圖像。該循環不會迭代圖像中的每個像素,而是定期跳過像素(例如,它處理每 10 個像素)。每個處理像素處的灰階值用於確定點的大小(例如,灰階值 100 對應於特定的點大小)。然後使用原始影像的色彩資訊將這些點繪製在原始影像的空白副本上。總而言之,我創建了一個圖像副本,其中根據原始像素的顏色資訊繪製了不同大小的點(請參閱圖 2)。
圖 2:為了繪製點,使用原始影像中像素的顏色資訊。為了確定點的大小,使用原始影像的灰階版本。
下面是程式碼,可能的結果如圖 3 所示。
圖 3:右側顯示原始影像,左側顯示基於此處提供的程式碼的虛線版本。
以上是使用 OpenCv 製作簡單的點畫。的詳細內容。更多資訊請關注PHP中文網其他相關文章!