栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Opencv实现画笔功能

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Opencv实现画笔功能

本文实例为大家分享了Opencv实现画笔功能的具体代码,供大家参考,具体内容如下

#include
#include
 
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;
 

void onMouse(int event, int x, int y, int flag, void *param)
{
 Mat &img = *(cv::Mat*)param;
 
 switch (event)
 {
 //移动鼠标的时候
 case CV_EVENT_MOUSEMOVE:
 {
   g_nCurrPoint = Point(x, y);
 }
 break;
 //点击鼠标左键时
 case CV_EVENT_LBUTTONDOWN:
 {
   g_bDrawing = true;
   g_nCurrPoint = Point(x, y);
 }
 break;
 //松开鼠标左键时
 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("【鼠标事件窗口】", 0);
 setMouseCallback("【鼠标事件窗口】", 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("【鼠标事件窗口】", srcImage);
 
 key = waitKey(1);
 if (key == 27)
 break;
 
 if (key == '1')
 srcImage = Scalar::all(0);
 
 
 }
 
 return 0;
}

按1是清除画面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/61344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号