在VS中怎么用vb画矩形_(十四)矩形和操作展示逻辑操作
生活随笔
收集整理的這篇文章主要介紹了
在VS中怎么用vb画矩形_(十四)矩形和操作展示逻辑操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
時間為友,記錄點滴。
聊了這么多的圖片運算,忽然有個想法,為什么非要用靜態的圖片來展示運算呢?我們可以用自己做的圖片來經過運算后顯示出來。說干就干。
先想一下需求:
好就這吧,怎么而實現呢?老規矩,大象放冰箱的三步走:
OpenCV中的矩形類實現
rect創建一個矩形:rect(X0, Y0, width, height), X0/Y0代表矩形的起點,width, height代表矩形的寬和高。這四個變量就把矩形的位置和大小限定了。
- area(): 面積
- size(): 尺寸,及[width, height]
- tl(): 左上頂點坐標
- br(): 右下頂點坐標
- width(): 寬度
- heigth(): 高度
- contains(Point(x, y)): 是否包含Point點
- &: rect = rect1 & rect2; 求兩個矩形的交集
- | : rect = rect1 | rect2; 求兩個矩形的并集
- ==: rect1 == rect2; 判斷兩個矩形是否相等
- 平移:rect = rect + Point(x, y); 其實就是對左上頂點坐標做加法
- 縮放:rect = rect + Size(x, y);其實就是對width和height做加法。
- img: 可以認為是Mat 類型的Image.
- pt1: 矩形的一個頂點,比如:rect.tl
- pt2:矩形的pt1的對立頂點,比如:rect.br
- color: 矩形的顏色值或者灰度值。
- thickness: 是否需要填充 thickness>0?不填充:填充
- lineType: 線的類型,參考LineTypes
- shift Number of fractional bits in the point coordinates.
OpenCV中的鼠標實現畫矩形
鼠標先知道一個函數就夠了
void- winname:窗口的名字
- onMouse:鼠標響應函數,回調函數。指定窗口里每次鼠標時間發生的時候,被調用的函數指針。 這個函數的原型應該為void on_Mouse(int event, int x, int y, int flags, void* param);
- userdate:傳給回調函數的參數
- event: CV_EVENT_*變量之一
常見的event:
cv2_EVENT_MOUSEMOVE 鼠標滑動cv2_EVENT_LBUTTONDOWN 左鍵點擊
cv2_EVENT_RBUTTONDOWN 右鍵點擊
cv2_EVENT_MBUTTONDOWN 中間點擊
cv2_EVENT_LBUTTONUP 左鍵釋放
cv2_EVENT_RBUTTONUP 右鍵釋放
cv2_EVENT_MBUTTONUP 中間釋放
cv2_EVENT_LBUTTONDBLCLK 左鍵雙擊
cv2_EVENT_RBUTTONDBLCLK 右鍵雙擊
cv2_EVENT_MBUTTONDBLCLK 中間雙擊
- x/y: 鼠標指針在圖像坐標系的坐標(不是窗口坐標系)
- flags: CV_EVENT_FLAG的組合, param是用戶定義的傳遞到setMouseCallback函數調用的參數。
cv2_EVENT_FLAG_RBUTTON 右鍵拖拽
OpenCV中的圖片邏輯操作
//邏輯運算:好了,完成了構思,和基本的概念,coding。。。
第一步:先實現一個矩形類,并且把它畫出來,看看基本的&|操作是否有用。
static打印輸出:
矩形的一些屬性圖片輸出的是test1 & test2第二步:構造鼠標操作
注意點:
運行結果:
四個彈窗:log輸出;&運算、|運算、非運算總結
以上是生活随笔為你收集整理的在VS中怎么用vb画矩形_(十四)矩形和操作展示逻辑操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python程序设计第一章答案_Pyth
- 下一篇: 大数据技术架构_架构大数据图