博主想自己做乙個標註工具,用於製作目標檢測資料集,其中乙個功能就是拖拽滑鼠選中矩形區域,參考了幾篇部落格,自己實現了一下,效果如下:
下面是實現:
import sys,math
from pyqt5.qtgui import
*from pyqt5.qtwidgets import
*from pyqt5.qtcore import
*class
drawing
(qwidget)
:def
__init__
(self,parent=
none):
super
(drawing,self)
.__init__(parent)
self.resize(
600,
400)
self.setwindowtitle(
'拖拽繪製矩形'
) self.rect =
none
#重寫繪製函式
defpaintevent
(self,event)
:#初始化繪圖工具
qp=qpainter(
)#開始在視窗繪製
qp.begin(self)
#自定義畫點方法
if self.rect:
self.drawrect(qp)
#結束在視窗的繪製
qp.end(
)def
drawrect
(self,qp)
:#建立紅色,寬度為4畫素的畫筆
pen = qpen(qt.red,4)
qp.setpen(pen)
qp.drawrect(
*self.rect)
#重寫三個時間處理
defmousepressevent
(self, event)
:print
("mouse press"
) self.rect =
(event.x(
), event.y(),
0,0)
defmousereleaseevent
(self, event)
:print
("mouse release"
)def
mousemoveevent
(self, event)
: start_x, start_y = self.rect[0:
2]self.rect =
(start_x, start_y, event.x(
)- start_x, event.y(
)- start_y)
self.update(
)if __name__ ==
'__main__'
: demo=drawing(
) demo.show())
)
OpenCV中繪製外圍矩形框和圓框
利用邊界尋找函式找到的邊界座標資訊。然後利用每一條尋找到的邊際資訊去找到圖形的矩形邊界和圓形邊界。根據已知的邊界資訊點。將邊界資訊傳入提供的api函式得到該邊界的矩形框。api rect boundingrect mat 輸入點集 下面是具體的使用方法 void rec int,void out p...
31 輪廓周圍繪製矩形框和圓形框
1 api介紹 2 演示 3 旋轉矩形api cv minarearect 得到包含輪廓的旋轉矩形 4 輪廓最小區域圓形繪製api cv minenclosingcircle enclosing 封閉的,包捲的 5 輪廓最小區域橢圓繪製api cv fitellipse 1 將影象轉換為二值影象 2...
PyQt5 標準輸入框QInputDialog
from pyqt5 import qtwidgets from pyqt5.qtwidgets import qlineedit,qinputdialog class mywindow qtwidgets.qwidget def init self super mywindow,self init...