国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

企業(yè)信用網(wǎng)查詢網(wǎng)站優(yōu)化推廣培訓(xùn)

企業(yè)信用網(wǎng)查詢,網(wǎng)站優(yōu)化推廣培訓(xùn),花都區(qū)pc端網(wǎng)站建設(shè),flashfxp怎么做網(wǎng)站文章目錄 opencv鼠標事件函數(shù)setMouseCallback()詳解1、鼠標事件函數(shù):(1)鼠標事件函數(shù)原型:setMouseCallback(),此函數(shù)會在調(diào)用之后不斷查詢回調(diào)函數(shù)onMouse(),直到窗口銷毀(2)回調(diào)函…

文章目錄

        • opencv鼠標事件函數(shù)setMouseCallback()詳解
          • 1、鼠標事件函數(shù):
            • (1)鼠標事件函數(shù)原型:setMouseCallback(),此函數(shù)會在調(diào)用之后不斷查詢回調(diào)函數(shù)onMouse(),直到窗口銷毀
            • (2)回調(diào)函數(shù)onMouse(),可隨意命名,但是要與 setMouseCallback()函數(shù)里的回調(diào)函數(shù)名稱一致
          • 2、代碼示例:
            • (1)main.cpp
            • (2)頭文件demo.h
            • (3)demo.cpp
            • (4)效果演示

opencv鼠標事件函數(shù)setMouseCallback()詳解

1、鼠標事件函數(shù):
(1)鼠標事件函數(shù)原型:setMouseCallback(),此函數(shù)會在調(diào)用之后不斷查詢回調(diào)函數(shù)onMouse(),直到窗口銷毀
  void setMouseCallback(const String& winname, MouseCallback onMouse, void* userdata = 0
)參數(shù)解釋:winname:窗口名稱;onMouse:回調(diào)函數(shù);userdata:傳遞給回調(diào)函數(shù)用戶自定義的外部數(shù)據(jù),userdata是一個 void 類型的指針;
(2)回調(diào)函數(shù)onMouse(),可隨意命名,但是要與 setMouseCallback()函數(shù)里的回調(diào)函數(shù)名稱一致
void onMouse(int event, int x, int y, int flags, void *userdata
) 參數(shù)解釋:
event:表示鼠標事件類型的常量(#define CV_EVENT_MOUSEMOVE 0             //滑動#define CV_EVENT_LBUTTONDOWN 1           //左鍵點擊#define CV_EVENT_RBUTTONDOWN 2           //右鍵點擊#define CV_EVENT_MBUTTONDOWN 3           //中鍵點擊#define CV_EVENT_LBUTTONUP 4             //左鍵放開#define CV_EVENT_RBUTTONUP 5             //右鍵放開#define CV_EVENT_MBUTTONUP 6             //中鍵放開#define CV_EVENT_LBUTTONDBLCLK 7         //左鍵雙擊#define CV_EVENT_RBUTTONDBLCLK 8         //右鍵雙擊#define CV_EVENT_MBUTTONDBLCLK 9         //中鍵雙擊
);
x和y:鼠標指針在圖像坐標系的坐標;
flags:鼠標事件標志的常量;
userdata:回調(diào)函數(shù)接收,用戶自定義的外部數(shù)據(jù),userdata是一個 void 類型的指針;
2、代碼示例:

利用鼠標事件函數(shù),提取ROI區(qū)域:

(1)main.cpp
#include <opencv2\opencv.hpp>
#include <iostream>
#include <demo.h>using namespace cv;
using namespace std;int main() {//讀取圖像,BGR存儲在Mat矩陣里Mat src = cv::imread("C:\\cpp\\image\\suzy4.jpg");if (src.empty()) {printf("could not load image..../n");return -1;}Demo demo;demo.mouseEvent(src);waitKey();destroyAllWindows();return 0;
}
(2)頭文件demo.h
#include <opencv2/opencv.hpp>using namespace cv;class Demo
{
public:void mouseEvent(Mat &image);
private:};
(3)demo.cpp
#include <Demo.h>using namespace std;Point sp(-1, -1);
Point ep(-1, -1);
Mat temp;
static void onMouse(int event, int x, int y, int flags, void *userdata) {/*** 對指針userdata,進行轉(zhuǎn)換和解引用的操作,將userdata指向的Mat對象,賦值給名為image的變量,以便后續(xù)對圖像數(shù)據(jù)的處理:* userdata是一個void類型的指針,需要轉(zhuǎn)換為Mat類型的指針,然后用*運算符解引用,得到Mat對象,再賦值給名為image的變量,這樣就可以對image進行操作了;*/Mat image = *((Mat*)userdata);if (event == EVENT_LBUTTONDOWN) {// 起點坐標sp.x = x;sp.y = y;std::cout << "start point:" << sp << std::endl;}else if (event == EVENT_LBUTTONUP) {ep.x = x;ep.y = y;// 結(jié)束點坐標int dx = ep.x - sp.x;int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y, dx, dy);temp.copyTo(image);imshow("ROI區(qū)域", image(box));rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠標繪制", image);// ready for next drawingsp.x = -1;sp.y = -1;}}else if (event == EVENT_MOUSEMOVE) {if (sp.x > 0 && sp.y > 0) {ep.x = x;ep.y = y;int dx = ep.x - sp.x;int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y, dx, dy);temp.copyTo(image);rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠標繪制", image);}}}
}void Demo::mouseEvent(Mat &image) {namedWindow("鼠標事件", WINDOW_AUTOSIZE);/*** 由于回調(diào)函數(shù)需要傳入的是一個void類型指針,我們先取image的地址,再將&image強制轉(zhuǎn)換為void類型指針,具體操作如下:* &image:獲取變量image的內(nèi)存地址,即Mat對象的指針;* (void*):是一個強制類型轉(zhuǎn)換,將image的地址轉(zhuǎn)換為void類型指針,這樣就可以將參數(shù)傳遞給回調(diào)函數(shù)了;*/setMouseCallback("鼠標繪制", onMouse, (void*)(&image));imshow("鼠標繪制", image);temp = image.clone();
}
(4)效果演示

在這里插入圖片描述

http://aloenet.com.cn/news/46045.html

相關(guān)文章:

  • 建甌網(wǎng)站制作百度網(wǎng)站怎么提升排名
  • 自己做產(chǎn)品品牌網(wǎng)站谷歌官網(wǎng)網(wǎng)址
  • 杭州富陽區(qū)網(wǎng)站建設(shè)公司seo排名軟件有用嗎
  • 鄭州響應(yīng)式網(wǎng)站建設(shè)如何找外包的銷售團隊
  • 網(wǎng)絡(luò)工作室頭像seo積分優(yōu)化
  • 用flash做的網(wǎng)站展示品牌策劃方案模板
  • 網(wǎng)站二級域名 權(quán)重 盧松松學(xué)seo網(wǎng)絡(luò)推廣
  • 國內(nèi)醫(yī)療美容網(wǎng)站建設(shè)培訓(xùn)機構(gòu)不退費最有效方式
  • 電子書推送網(wǎng)站怎么做會計培訓(xùn)班
  • 政府采購網(wǎng)站的建設(shè)情況bing收錄提交
  • 個人博客網(wǎng)站開發(fā)的原因鄭州seo排名優(yōu)化公司
  • flash 做ppt的模板下載網(wǎng)站北京seo招聘信息
  • wordpress 命令插件東莞seo靠譜
  • wap網(wǎng)站開發(fā)協(xié)議個人推廣網(wǎng)站
  • 做網(wǎng)站最主要是什么最新的新聞 最新消息
  • java網(wǎng)站開發(fā)步驟搜索引擎費用
  • html做電子書網(wǎng)站抖音關(guān)鍵詞搜索排名
  • 網(wǎng)站速度優(yōu)化工具關(guān)鍵詞排名
  • 怎么做淘寶鏈接網(wǎng)站開戶推廣競價開戶
  • 甘肅省建設(shè)部網(wǎng)站微信朋友圈軟文大全
  • 深圳做棋牌網(wǎng)站建設(shè)軟文推廣的優(yōu)點
  • 網(wǎng)站的做用seo引擎優(yōu)化專員
  • 中央廣播電視總臺央視頻在線直播百度seo教程視頻
  • 哈西建站優(yōu)化購物網(wǎng)站大全
  • 博彩導(dǎo)航網(wǎng)站可以做嗎創(chuàng)建網(wǎng)站需要多少資金
  • 中國城鄉(xiāng)建設(shè)部網(wǎng)站證書查詢網(wǎng)站關(guān)鍵詞排名快速提升
  • 網(wǎng)站建設(shè)過程論文網(wǎng)站收錄查詢
  • wordpress不能啟動怎么解決方法seo中文意思
  • 做公司網(wǎng)站首頁seo網(wǎng)站診斷顧問
  • 怎么看網(wǎng)站是什么程序做的搜索引擎優(yōu)化seo專員招聘