日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【图像处理】——Python鼠标框选ROI(感兴趣)区域并且保存(含鼠标事件)

發布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【图像处理】——Python鼠标框选ROI(感兴趣)区域并且保存(含鼠标事件) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鼠標交互切割矩形

接下來,就是本文重點了。先吐個槽,網上有資源,但搜到的都是C++的。本來有點氣餒的,還好,有官網在,文檔寫得很清楚,而且接口函數名字變化不大,稍微做下修改就行了。

import cv2global img global point1, point2 def on_mouse(event, x, y, flags, param):global img, point1, point2img2 = img.copy()if event == cv2.EVENT_LBUTTONDOWN: #左鍵點擊point1 = (x,y)cv2.circle(img2, point1, 10, (0,255,0), 5)cv2.imshow('image', img2)elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON): #按住左鍵拖曳cv2.rectangle(img2, point1, (x,y), (255,0,0), 5)cv2.imshow('image', img2)elif event == cv2.EVENT_LBUTTONUP: #左鍵釋放point2 = (x,y)cv2.rectangle(img2, point1, point2, (0,0,255), 5) cv2.imshow('image', img2)min_x = min(point1[0],point2[0]) min_y = min(point1[1],point2[1])width = abs(point1[0] - point2[0])height = abs(point1[1] -point2[1])cut_img = img[min_y:min_y+height, min_x:min_x+width]cv2.imwrite('lena3.jpg', cut_img)def main():global imgimg = cv2.imread('lena.jpg')cv2.namedWindow('image')cv2.setMouseCallback('image', on_mouse)cv2.imshow('image', img)cv2.waitKey(0)if __name__ == '__main__':main()
  • 實現效果:當按住左鍵不放且不動時,就會出現個綠圈在圖片上,當按住左鍵拖曳鼠標時,就會畫出個藍色矩形,最后當釋放鼠標時,則出現個紅色的選定框.最后最后再隨意按一個鍵盤鍵,就會結束程序。

  • 運行結果
    原圖:

鼠標響應函數

?

參考:https://blog.csdn.net/qq_37674858/article/details/80434618

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【图像处理】——Python鼠标框选ROI(感兴趣)区域并且保存(含鼠标事件)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。