C++ opencv实现在图片上画一条线示例代码
作者:浅念念52 时间:2021-12-15 12:34:27
1 在图片上用鼠标进行操作,opencv主要用到setMouseCallback()函数。
winname
窗口名称
onMouse
鼠标事件的回调函数
userdata
传递给回调函数
还有onMouse函数
event 鼠标事件
x,y 鼠标在图片上的坐标
flags 鼠标事件标志
这里有一个容易搞混的地方
void跟void*
在函数的返回值中, void 是没有任何返回值, 而 void * 是返回任意类型的值的指针.
划线还需要用到line()函数
img 图片名称
pt1 线段起点
pt2 线段终点
color 颜色
thickness 宽度
lineType 线段类型
shift 移位点坐标中的小数位数。
接下来直接看代码
#include <iostream>
#include<opencv.hpp>
using namespace std;
using namespace cv;
Mat img;
Point p;
void on_monse(int event, int x, int y, int flags, void*)
{
if (event == 1)//1 左键点击
{
p = Point(x, y);
}
else if (event == 0 && flags == 1)//0 滑动 1左键拖曳
{
Point p1(x, y);
line(img, p, p1, Scalar(255, 0, 0), 5);
p = p1;
imshow("www", img);
}
}
int main()
{
img = imread("星空1.png", 1);
imshow("www", img);
setMouseCallback("www", on_monse);
waitKey(0);
}
效果图:
附:
来源:https://blog.csdn.net/Lightismore/article/details/123666740
标签:C++,opencv,图片画线
0
投稿
猜你喜欢
使用GPS经纬度定位附近地点(某一点范围内查询)
2023-08-22 18:49:09
Android SQLite数据库操作代码类分享
2022-03-03 06:43:25
Java Online Exam在线考试系统的实现
2022-01-30 13:49:35
C#装箱和拆箱原理详解
2021-12-29 16:07:26
Android中使用开源框架eventbus3.0实现fragment之间的通信交互
2021-06-30 09:23:07
C#基于COM方式读取Excel表格的方法
2021-09-15 12:35:36
C#获取文件创建时间的方法
2022-04-25 22:56:55
Spring security登录过程逻辑详解
2022-09-04 19:58:20
GoLang与Java各自生成grpc代码流程介绍
2021-06-20 09:28:50
C语言中队列的结构和函数接口的使用示例
2022-01-08 06:56:40
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
2022-05-14 03:39:32
struts2中使用注解配置Action方法详解
2023-08-30 00:01:25
Android自定义ScrollView实现阻尼回弹
2021-11-23 07:20:19
Elasticsearch学习之Terms set 查询
2021-12-01 01:52:19
WinForm调用jar包的方法分析
2023-11-17 04:09:46
C#复制数组的两种方式及效率比较
2023-07-15 04:19:12
Struts2配置文件中使用通配符的方法(三种形式)
2022-08-21 01:53:40
Java校验银行卡是否正确的核心代码
2022-01-28 19:53:29
C++编写实现图书管理系统
2022-03-05 09:51:00
图文详解SpringBoot中Log日志的集成
2023-05-27 09:55:13