資源簡介
在圖像處理的過程中,我們可能會遇到這樣的一個場景,想要截取圖像的某個區域,但是,又無法知道區域在圖片的具體位置,無法通過正常的截圖手段進行操作。所以,根據這一需求,我們應該想到在交互狀態下去操作圖像,也就是可以通過我們的鼠標進行選定某個區域,然后再進行截圖操作。
代碼片段和文件信息
#!?/usr/bin/env?python
#?-*-?coding:utf-8?-*-
#?從圖像中截圖
import?cv2
import?numpy?as?np
#?先進行初始化
RED?=?[0?0?255]
rect?=?(0?0?1?1)
drawing?=?False
rectangle?=?False
rect_over?=?False
rect_or_mask?=?100
thickness?=?2
def?rectangle_roi(event?x?y?flags?param):
????global?img?img2?dst?drawing?mask?rectangle?rect?rect_or_mask?ix?iy?rect_over
????#?Draw?Rectangle
????if?event?==?cv2.EVENT_RBUTTONDOWN:
????????rectangle?=?True
????????ix?iy?=?x?y
????elif?event?==?cv2.EVENT_MOUSEMOVE:
????????if?rectangle?==?True:
????????????img?=?img2.copy()
????????????cv2.rectangle(img?(ix?iy)?(x?y)?RED?thickness)
????????????rect?=?(min(ix?x)?min(iy?y)?abs(ix?-?x)?abs(iy?-?y))
????????????rect_or_mask?=?0
????elif?event?==?cv2.EVENT_RBUTTONUP:
????????rectangle?=?False
????????rect_over?=?True
????????cv2.rectangle(img?(ix?iy)?(x?y)?RED?thickness)
????????rect?=?(min(ix?x)?min(iy?y)?abs(ix?-?x)?abs(iy?-?y))
????????rect_or_mask?
評論
共有 條評論