cv2.resize
傳的大小是寬高不是高寬, 是[width, height]
, 不是[height, width]
影象座標和python numpy矩陣
opencv關於影象座標和numpy 陣列關於同樣位置座標問題。在opencv中,以左上角為起點,向右是x座標,向下是y座標,而在numpy中,向右是列,向下是行,在中的座標(x,y)
,在numpy中則是(y,x)
,因此在對座標操作的時候需要考慮到這一點。
bgr to rgb
python 通過cv2.imread
讀取的影象是bgr通道的,一般其它程式使用都是rgb通道,因此讀完之後需要進行通道轉換, 建議使用b,g,r = cv2.split(img) img = cv2.merge([r,g,b])
這種方法來進行通道轉換. 使用img = cv2.cvtcolor(img, cv2.color_bgr2rgb)
,程式是建議先進行img /= 255.
操作,使得img
變成0~1
範圍.所以建議還是直接使用第一種方法, 簡單快捷明確又不會對原圖造成其它影響.
video_capture = cv2.videocapture(video_path)
fps = video_capture.get(cv2.cap_prop_fps)
video_capture.set(cv2.cap_prop_pos_frames, fps*(start_frame_idx))
上畫點, 畫線, 寫文字
cv::line(img, single_point_1, single_point_2, (30, 144, 255), 2)
cv2.circle(img, (x,y), 2, (0, 255, 0), -1)
cv2.puttext(img, str(i), (x,y), cv2.font_hershey_complex, 1, (0, 0, 255), 1)
cv2.rectangle(img, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (255, 0, 0))
opencv中關於畫素的常見操作
一 獲取影象畫素指標 mat.ptr int i 0 獲取畫素矩陣的指標,索引i表示第幾行,從0開始計行數。獲得當前行指標const uchar current myimage.ptr row 獲取當前畫素點p row,col 的畫素值 p row,col current col 二 畫素範圍處理s...
OpenCV常見錯誤
其實實際操作中遇到的是第二種情況,我在做相機標定的時候,通過檔案函式匯入的時候,在匯入的檔名的 txt 檔案中,後面多加了幾行換行,導致檔案在識別不到名稱,還要輸出,因此導致錯誤。如何發現的 因為我只匯入了14張,但輸出框內卻顯示到了15,然後看了這位博主的部落格,有所感悟,將文字匯入檔案的換行符去...
學習 Opencv 常見介面
opencv改變影象大小的操作 void resize inputarray src,outputarray dst,size dsize,double fx 0,double fy 0,int interpolation inter linear 各個引數的意義比較直觀,但是需要注意的是 dsiz...