-
大小: 2.74MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-08
- 語言: Python
- 標簽: opencv-pytho??不規(guī)則ROI??矩形區(qū)域??
資源簡介
1.本資源主要是基于python-opencv進行開發(fā)的,主要功能是用鼠標提取不規(guī)則的ROI以便進行后續(xù)處理。
2.https://blog.csdn.net/imwaters/article/details/80808491博文配套代碼,整理了一些參考資料。代碼基本是一樣的,有分的麻煩還是下載支持一下。
2.https://blog.csdn.net/imwaters/article/details/80808491博文配套代碼,整理了一些參考資料。代碼基本是一樣的,有分的麻煩還是下載支持一下。

代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
“““
Created?on?Sat?Jun?23?15:16:16?2018
@author:?Zengxy_GUET
“““
import?cv2
import?numpy?as?np
global?img
global?point1?point2
lsPointsChoose=[]
tpPointsChoose=[]
pointsCount=0
count=0?
pointsMax=5
#-----------------------鼠標操作相關------------------------------------------
#------------------------------------------------------------------------------
lsPointsChoose=[]
tpPointsChoose=[]
pointsCount=0
count=0
pointsMax=5
def?on_mouse(event?x?y?flags?param):
????global?img?point1?point2countpointsMax
????global?lsPointsChoosetpPointsChoose??#存入選擇的點
????global?pointsCount???#對鼠標按下的點計數(shù)
????global?img2ROI_bymouse_flag
????img2?=?img.copy()???#此行代碼保證每次都重新再原圖畫??避免畫多了
#-----------------------------------------------------------
#????count=count+1
#????print(“callback_count“count)
#--------------------------------------------------------------
????if?event?==?cv2.EVENT_LBUTTONDOWN:?????????#左鍵點擊
????????pointsCount=pointsCount+1
????#???????為了保存繪制的區(qū)域,畫的點稍晚清零
????????if(pointsCount==pointsMax+1):
????????????pointsCount=0
????????????tpPointsChoose=[]
????????print(‘pointsCount:‘pointsCount)
????????point1?=?(xy)
????????print?(xy)
#????????畫出點擊的點
????????cv2.circle(img2?point1?10?(02550)?5)
#???????將選取的點保存到list列表里
????????lsPointsChoose.append([xy])??#用于轉化為darry?提取多邊形ROI
????????tpPointsChoose.append((xy))??#用于畫點
????????????#----------------------------------------------------------------------
????#將鼠標選的點用直線鏈接起來
????????print(len(tpPointsChoose))
????????for?i?in?range(len(tpPointsChoose)-1):
????????????print(‘i‘i)
????????????cv2.line(img2tpPointsChoose[i]tpPointsChoose[i+1](00255)5)
#----------------------------------------------------------------------
#----------點擊到pointMax時可以提取去繪圖----------------
????????if(pointsCount==pointsMax):
#-----------繪制感興趣區(qū)域-----------
#----------------------------------
????????????ROI_byMouse()
????????????ROI_bymouse_flag=1
????????????lsPointsChoose=[]
#--------------------------------------------------------
????????cv2.imshow(‘src‘?img2)
#-------------------------右鍵按下清除軌跡-----------------------------
????if?event?==?cv2.EVENT_RBUTTONDOWN:?????????#右鍵點擊
????????print(“right-mouse“)
????????pointsCount=0
????????tpPointsChoose=[]
????????lsPointsChoose=[]
????????print(len(tpPointsChoose))
????????for?i?in?range(len(tpPointsChoose)-1):
????????????print(‘i‘i)
????????????cv2.line(img2tpPointsChoose[i]tpPointsChoose[i+1](00255)5)
????????cv2.imshow(‘src‘?img2)
#-----------------------------------------------------------------------
#%%
#--------------------------------------------------------------
def?ROI_byMouse():
????global?srcROIROI_flagmask2
????mask?=?np.zeros(img.shape?np.uint8)
????pts?=?np.array([lsPointsChoose]?np.int32)
#?pts.shape=(4,2)
????pts?=?pts.reshape((-112))?#?-1代表剩下的維度自動計算
#?reshape?后的?pts.shape=(4。1,2)??
#--------------畫多邊形----
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????6220854??2018-06-24?09:42??mask0623.bmp
?????文件???????5013??2018-06-25?23:17??polylineROI-mouse-only_180625.py
?????文件???????1967??2018-06-25?22:51??rectangle-mouse-only-180625.py
?????文件????6220854??2018-06-24?09:42??ROI0623.bmp
?????文件????6220854??2018-06-23?15:38??fr
-----------?---------??----------?-----??----
?????????????18669542????????????????????5
評論
共有 條評論