国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【opencv學習】鼠標回調函數(shù)、鼠標控制畫矩形

這篇具有很好參考價值的文章主要介紹了【opencv學習】鼠標回調函數(shù)、鼠標控制畫矩形。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
#define WinDow "程序窗口"

void MouseHandle(int event, int x, int y, int flags, void* param);//鼠標回調函數(shù)
void Drawrectangle(cv::Mat& img, cv::Rect box);//矩形繪制函數(shù)
bool DrawingBox = false;//是否就行矩形繪制
Rect y_rectangle;//繪制的圖形參數(shù)(位置,大小)
RNG rng(12345);//random number generator隨機數(shù)生成器

int main()
{
	y_rectangle = Rect(-1, -1, 0, 0);//初始化參數(shù)
	Mat srcimage(600, 800, CV_8UC3), tempimage;//初始化對象600*800,3通道
	srcimage = Scalar::all(255);//初始化srcimage背景顏色

	namedWindow(WinDow);
	setMouseCallback(WinDow, MouseHandle, (void*)&srcimage);//鼠標操作回調函數(shù),邊顯示,邊畫圖
	while (1)
	{
		srcimage.copyTo(tempimage);//將srcimage復制到tempimage
		if (DrawingBox)
			Drawrectangle(tempimage, y_rectangle);
		imshow(WinDow, tempimage);
		if (waitKey(10) == 27)//按esc跳出
			break;
	}
	return 0;
}

void MouseHandle(int event, int x, int y, int flags, void* param)
{
	Mat& image = *(cv::Mat*)param;
	switch (event)
	{
	case EVENT_MOUSEMOVE://鼠標移動
	{
		if (DrawingBox)//繪制矩形,則記錄下矩形的長寬
		{
			y_rectangle.width = x - y_rectangle.x;//要繪制的矩形寬度為:當前坐標值減去移動前的坐標值
			y_rectangle.height = y - y_rectangle.y;
		}
	}
	break;
	case EVENT_LBUTTONDOWN://點擊鼠標左鍵
	{
		DrawingBox = true;//繪制開關打開
		y_rectangle = Rect(x, y, 0, 0);//記錄矩形左上角起始點
	}
	break;
	case EVENT_LBUTTONUP://鼠標左鍵抬起
	{
		DrawingBox = false;//繪制開關關閉
		//如果鼠標往左上兩個方向移動,那么有一個值為負數(shù)
		if (y_rectangle.width < 0)
		{
			y_rectangle.x += y_rectangle.width;//坐標值
			y_rectangle.width *= -1;//寬度值
		}
		if (y_rectangle.height < 0)
		{
			y_rectangle.y += y_rectangle.height;
			y_rectangle.height *= -1;
		}
		Drawrectangle(image, y_rectangle);//動作完成以后要繪制出圖形
	}
	break;
	}
}

void Drawrectangle(cv::Mat& img, cv::Rect box)
{
	rectangle(img, box.tl(), box.br(), Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)));
}

1.回調函數(shù)可以簡單理解為一邊做一件事的同時做另一件事,優(yōu)化之前的實現(xiàn)完一個函數(shù)后才實現(xiàn)另一個的問題。
鼠標回調函數(shù)就是一邊鼠標操作畫圖,一邊顯示畫出的圖像。
2.實現(xiàn)一個矩形rec只需要知道一個左上角的坐標和寬高即可實例化對象。文章來源地址http://www.zghlxwxcb.cn/news/detail-622128.html

到了這里,關于【opencv學習】鼠標回調函數(shù)、鼠標控制畫矩形的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【sgRectSelect】自定義組件:Vue實現(xiàn)拖拽鼠標圈選、劃區(qū)域、框選組件:矩形區(qū)域選中checkbox,并回調相關選中、取消選中的操作。

    【sgRectSelect】自定義組件:Vue實現(xiàn)拖拽鼠標圈選、劃區(qū)域、框選組件:矩形區(qū)域選中checkbox,并回調相關選中、取消選中的操作。

    邊框線虛線動畫效果請參閱 邊框虛線滾動動畫特效_虛線滾動效果_你摯愛的強哥的博客-CSDN博客 【代碼】邊框虛線滾動動畫特效。_虛線滾動效果 https://blog.csdn.net/qq_37860634/article/details/130507289 ? 碰撞檢測原理請前往? 原生JS完成“一對一、一對多”矩形DIV碰撞檢測、碰撞檢查,

    2024年02月09日
    瀏覽(115)
  • C++ opencv鼠標事件,在圖像上畫矩形

    C++ opencv鼠標事件,在圖像上畫矩形

    opencv中常用的除了TrackBar滑動條事件,還有豐富的鼠標事件,與TrackBar類似,鼠標事件也是使用回調函數(shù)判斷動作的發(fā)生,并執(zhí)行相關的操作。整個行為與QT的信號與槽類似。 在圖像中畫出矩形,需要使用setMouseCallback()和MouseCallback()函數(shù)。 本文使用的頭文件及命名空間: 設

    2024年02月11日
    瀏覽(25)
  • Python OpenCV實現(xiàn)鼠標繪制矩形框和多邊形

    Python OpenCV實現(xiàn)鼠標繪制矩形框和多邊形

    目錄 Python OpenCV實現(xiàn)鼠標繪制矩形框和多邊形 1. OpenCV鼠標事件操作說明 (1)setMouseCallback函數(shù)說明 (2)回調函數(shù)onMouse說明 (3)event 具體說明: (4)flags 具體說明 2. OpenCV實現(xiàn)鼠標繪制矩形框和多邊形框 (1)繪制矩形框 (2)繪制多邊形 (3)鍵盤控制 3. 完整的代碼 本篇將

    2024年02月06日
    瀏覽(131)
  • 【opencv3】鼠標框選矩形并顯示當前像素點坐標和矩形中心點坐標C++

    【opencv3】鼠標框選矩形并顯示當前像素點坐標和矩形中心點坐標C++

    (1)用鼠標在圖中框選矩形目標,然后保存框選的圖片; (2)鼠標拖動過程中要求顯示框的線條以及鼠標當前像素點信息(坐標和RGB值); (3)拖動完成后單獨顯示框取的圖像,拖動完成后cout輸出框中心像素點坐標。 鼠標事件: 鼠標左鍵按下時(event == CV_EVENT_LBUTTONUP),標

    2024年02月09日
    瀏覽(86)
  • VTK——設置交互樣式上的鼠標回調函數(shù)

    VTKPointPickerInteractorStyle是一個自定義的交互樣式類,它是VTK庫中vtkInteractorStyleTrackballCamera類的子類。VTK(Visualization Toolkit)是一個開源的,跨平臺的庫,用于處理、渲染和視覺化科學數(shù)據(jù)。它包括一系列的類和方法用于3D計算機圖形、圖像處理和可視化。 vtkInteractorStyleTrackba

    2024年02月10日
    瀏覽(32)
  • 計算機視覺+深度學習+機器學習+opencv+目標檢測跟蹤(代碼+視頻)

    計算機視覺+深度學習+機器學習+opencv+目標檢測跟蹤(代碼+視頻)

    計算機視覺、深度學習和機器學習是當今最熱門的技術,它們被廣泛應用于各種領域,如自動駕駛、醫(yī)學圖像分析、安防監(jiān)控等。而目標檢測跟蹤技術則是計算機視覺中的一個重要分支,它可以幫助我們在圖像或視頻中自動識別和跟蹤特定的目標。 下面我們來一一介紹這些技

    2024年02月01日
    瀏覽(58)
  • python+opencv+機器學習車牌識別 計算機競賽

    python+opencv+機器學習車牌識別 計算機競賽

    ?? 優(yōu)質競賽項目系列,今天要分享的是 ?? 基于機器學習的車牌識別系統(tǒng) ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):4分 工作量:4分 創(chuàng)新點:3分 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-seni

    2024年02月07日
    瀏覽(30)
  • 計算機競賽 機器視覺目標檢測 - opencv 深度學習

    計算機競賽 機器視覺目標檢測 - opencv 深度學習

    ?? 優(yōu)質競賽項目系列,今天要分享的是 ?? 機器視覺 opencv 深度學習目標檢測 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com/dancheng

    2024年02月07日
    瀏覽(101)
  • 計算機安全學習筆記(I):訪問控制安全原理

    計算機安全學習筆記(I):訪問控制安全原理

    從廣義上來講,所有的計算機安全都與訪問控制有關。 RFC 4949: Internet Security Glossary, Version 2 (rfc-editor.org) RFC 4949 定義的計算機安全:用來實現(xiàn)和保證計算機系統(tǒng)的安全服務的措施,特別是保證訪問控制服務的措施。 訪問控制實現(xiàn)的安全策略是,指定對于每個具體的系統(tǒng)資源,

    2024年02月10日
    瀏覽(26)
  • python 機器視覺 車牌識別 - opencv 深度學習 機器學習 計算機競賽

    python 機器視覺 車牌識別 - opencv 深度學習 機器學習 計算機競賽

    ?? 優(yōu)質競賽項目系列,今天要分享的是 ?? 基于python 機器視覺 的車牌識別系統(tǒng) ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:3分 ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/postgraduate 車牌識別其實是個經典的機器視覺任務了,

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包