在查閱opencv有關(guān)的技術(shù)文章時,經(jīng)常能夠看到如下風格的函數(shù)頭:
cv2.rectangle(frame, (x_min, y_min), (x_max, y_max), color, 2)
那么這里的x究竟是指圖像從左往右數(shù),還是從上往下數(shù)呢?
這里直接給出結(jié)論:在圖片img上畫矩形,坐標原點是圖片左上角,向右為x軸正方向,向下為y軸正方向:
上面介紹的是x,y的概念。那么height,width又是什么情況呢?考慮如下代碼:
import numpy as np
import cv2
img = np.zeros([100, 500])
cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows()
其創(chuàng)建的為高100,寬500的圖像(100行,500列的像素矩陣)。因此,以下代碼:
img[50, 250]
訪問的是第50行,第250列的像素,即opencv坐標系中的(x = 250, y = 50)。
仔細思考容易發(fā)現(xiàn),二維矩陣的第50行在opencv坐標系中對應(yīng)的是y=50,而非x=50。文章來源:http://www.zghlxwxcb.cn/news/detail-514510.html
總結(jié),使用cv2中的有關(guān)函數(shù)時,里面的x,y按照上面說的坐標軸來算;而如果自己手工直接訪問圖像numpy數(shù)組,那么此時的順序與opencv中的xy順序是對調(diào)的,需要按照矩陣原生的行列規(guī)則來。文章來源地址http://www.zghlxwxcb.cn/news/detail-514510.html
到了這里,關(guān)于簡單理解opencv中的坐標系,x,y,h,w的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!