Opencv實現(xiàn)畫筆功能
更新時間:2020年08月19日 15:49:56 作者:軒落_翼
這篇文章主要為大家詳細(xì)介紹了Opencv實現(xiàn)畫筆功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Opencv實現(xiàn)畫筆功能的具體代碼,供大家參考,具體內(nèi)容如下
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
Rect g_rectangle;
bool g_bDrawing = false;
RNG g_rng(12345);
Point g_nCurrPoint;
int g_nThick = 0, g_nBlue = 255, g_nGreen = 255, g_nRed = 0;
/*注意:不能在毀掉函數(shù)中寫入未初始化的矩陣類,所以需要用時,需要寫一個標(biāo)志位,然后再在while(1)循環(huán)內(nèi)使用*/
void onMouse(int event, int x, int y, int flag, void *param)
{
Mat &img = *(cv::Mat*)param;
switch (event)
{
//移動鼠標(biāo)的時候
case CV_EVENT_MOUSEMOVE:
{
g_nCurrPoint = Point(x, y);
}
break;
//點擊鼠標(biāo)左鍵時
case CV_EVENT_LBUTTONDOWN:
{
g_bDrawing = true;
g_nCurrPoint = Point(x, y);
}
break;
//松開鼠標(biāo)左鍵時
case CV_EVENT_LBUTTONUP:
{
g_bDrawing = false;
}
break;
}
}
int main()
{
Mat srcImage(600, 800, CV_8UC3);
Mat tempImage;
srcImage.copyTo(tempImage);
srcImage = Scalar::all(0);
namedWindow("【鼠標(biāo)事件窗口】", 0);
setMouseCallback("【鼠標(biāo)事件窗口】", onMouse, (void *)&srcImage);
namedWindow("【滾動條窗口】", 0);
createTrackbar("thick", "【滾動條窗口】", &g_nThick, 100, 0);
createTrackbar("Blue", "【滾動條窗口】", &g_nBlue, 255, 0);
createTrackbar("Green", "【滾動條窗口】", &g_nGreen, 255, 0);
createTrackbar("Red", "【滾動條窗口】", &g_nRed, 255, 0);
char key;
while (1)
{
if (g_bDrawing)
{
circle(srcImage, g_nCurrPoint, 0, Scalar(g_nBlue, g_nGreen, g_nRed), g_nThick + 1);
}
imshow("【鼠標(biāo)事件窗口】", srcImage);
key = waitKey(1);
if (key == 27)
break;
if (key == '1')
srcImage = Scalar::all(0);
/*DrawRectangle(srcImage, g_rectangle);
imshow(WINDOW_NAME, srcImage);
if (waitKey(10) == 27)
break;*/
}
return 0;
}
按1是清除畫面

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++中strlen函數(shù)的三種實現(xiàn)方法
在C語言中我們要獲取字符串的長度,可以使用strlen?函數(shù),strlen?函數(shù)計算字符串的長度時,直到空結(jié)束字符,但不包括空結(jié)束字符,因為strlen函數(shù)時不包含最后的結(jié)束字符的,因此一般使用strlen函數(shù)計算的字符串的長度會比使用sizeof計算的字符串的字節(jié)數(shù)要小2022-05-05
詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用
這篇文章主要介紹了詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08
深入了解C語言結(jié)構(gòu)化的程序設(shè)計
這篇文章主要介紹了C語言編程中程序的一些基本的編寫優(yōu)化技巧,文中涉及到了基礎(chǔ)的C程序內(nèi)存方面的知識,非常推薦!需要的朋友可以參考下2021-07-07

