OpenCV 影象點

Ammar Ali 2022年5月17日
OpenCV 影象點

本教程將討論 OpenCV 中影象的點表示法。

OpenCV 中影象的點表示法

在 x 和 y 座標系中,原點位於 (0, 0) 點,x 軸從原點開始向右移動,y 軸也從原點開始向上移動。

對於 OpenCV 中的影象,原點位於影象的左上角,x 軸從左上角開始向右移動。y 軸也從左上角開始,然後向影象底部移動。

例如,如果我們想表示影象的第 2 個畫素的位置,我們可以使用 x=1 和 y=0 的點 (0, 1)。

在 OpenCV 中,影象儲存為矩陣;我們還可以對點的第一個值表示行號,第二個值表示列號的點使用行列表示法。

在這種情況下,一個點(y,x)將等於一個點(行,列),點(x,y)將等於一個點(列,行)。

因此,如果我們在 OpenCV 中寫一個點值,如 (1, 0),程式碼將 1 作為 y 軸值的行號,將 0 作為列號或 x 軸值。

眾所周知,列從左移動寫入矩陣,x 軸也從左移動寫入,這意味著 x 將等於列,y 將等於行。

例如,要以列-行表示法表示影象的第 2 個畫素的位置,我們將其寫為 (0, 1),表示第 2 列和第 1 行。

現在讓我們考慮一個影象,我們想要在 OpenCV 中更改影象左上角的顏色。我們將更改前幾行和前幾列的顏色以更改列的顏色。

請參閱下面的程式碼。

import cv2
import numpy as np

x = np.zeros((312, 312,3), dtype=np.float32)
cv2.imshow('Original', x)

x[0:100, 0:100] = (0,0,255)

cv2.imshow('Result', x)
cv2.waitKey(0)

輸出:

像點

在上面的程式碼中,我們使用了 NumPyzeros() 函式來建立黑色影象。我們將前 100 行和前 100 列的顏色更改為紅色,我們可以在上面的輸出中看到結果。

現在讓我們在上圖中新增兩行,一行用於行,一行用於列。

請參閱下面的程式碼。

import cv2
import numpy as np

x = np.zeros((312, 312,3), dtype=np.float32)
cv2.imshow('Original', x)

x[0:10,:] = (0,0,255) # red
x[:,0:10] = (255,0,0) # blue

cv2.imshow('Result', x)
cv2.waitKey(0)

輸出:

影象點行列

在上面的程式碼中,我們將前 10 行和所有列的顏色更改為紅色,將前 10 列和所有行的顏色更改為藍色,我們可以在上面的輸出中看到結果。

這意味著要使用點系統 (x, y),如果是影象,我們需要將其寫為 (y, x) 或 (row, column)。

OpenCV 使用 BGR 顏色空間,所以上面程式碼中的三元組值 (0, 0, 255) 代表紅色。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - OpenCV Image