我從 Python 中的相機拍攝實時影像,并將其顯示在我的 PyQt5 GUI 的 ImageView 中,并將其呈現為實時提要。是顯示正常,但我想在影像中心繪制一個紅色十字準線,以幫助用戶了解焦點物件相對于框架中心移動的位置。
我嘗試使用“cv2.line(params)”在它上面繪圖,但我沒有看到線條。這對我來說很奇怪,因為在 C 中,當您在影像上繪圖時,它會使用墊子并在代碼中更改該墊子。如何在 UI 視窗上顯示它而無需單獨呼叫 cv2.imshow()?
這是來自改變影像的作業執行緒的信號,它發出一個ndarray和一個bool:
def pipeline_camera_acquire(self):
while True:
self.mutex.lock()
#get data and pass them from camera to img object
self.ximeaCam.get_image(self.img)
#get data from camera as numpy array
data_pic = self.img.get_image_data_numpy()
#Edits
cv2.line(data_pic, (-10,0), (10,0), (0,0,255), 1)
cv2.line(data_pic, (0,10), (0,-10), (0,0,255), 1)
self.editedIMG = np.rot90(data_pic, 3)
self.mutex.unlock()
#send signal to update GUI
self.imageChanged.emit(self.editedIMG, False)
uj5u.com熱心網友回復:
我不認為它沒有畫線,我認為它只是將它畫出可見區域。 (0,0)是影像的右上角,因此(0,10),(0,-10)將是影像邊緣的一條細線。
如果您試圖在中心繪制,那么您應該從 numpy 陣列的中心計算它。
例如:
x, y = data_pic.shape[0]//2, data_pic.shape[1]//2
cv2.line(data_pic, (x-10,y), (x 10,y), (0,0,255), 1)
cv2.line(data_pic, (x, y-10), (x, y 10), (0,0,255), 1)
那應該畫
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/519711.html
