C++ opencv实现在图片上画一条线示例代码

 更新时间:2022年05月13日 09:09:10   作者:浅念念52  
这篇文章主要为大家介绍了C++ opencv实现在图片上画一条线的示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

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);
}

效果图:

附:

以上就是C++ opencv实现在图片上画一条线示例代码的详细内容,更多关于C++ opencv图片画线的资料请关注脚本之家其它相关文章!

相关文章

  • C++实现LeetCode(149.共线点个数)

    C++实现LeetCode(149.共线点个数)

    这篇文章主要介绍了C++实现LeetCode(149.共线点个数),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言:十进制,BCD码互换详解

    C语言:十进制,BCD码互换详解

    这篇文章主要介绍了C语言十进制,BCD码互换实例,小编觉得这篇文章写的还不错,实例简单明了,需要的朋友可以参考下
    2021-09-09
  • C/C++中extern函数使用详解

    C/C++中extern函数使用详解

    extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定
    2022-09-09
  • 详解C语言之操作符

    详解C语言之操作符

    这篇文章主要以图文结合的方式为大家详细介绍了C语言的操作符知识,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-11-11
  • C++与Lua交互内存分配详解

    C++与Lua交互内存分配详解

    C/C++ 与 Lua 的交互是通过 lua_State 这一句柄进行交互,我们常规的创建都是通过 luaL_newstate 这一辅助函数,这篇文章主要给大家详细介绍了C++与Lua交互内存分配,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2023-11-11
  • C++中string与int的相互转换实现代码

    C++中string与int的相互转换实现代码

    这篇文章主要介绍了C++中string与int的相互转换实现代码,需要的朋友可以参考下
    2017-05-05
  • vscode 配置 C/C++ 编译环境的详细图文教程

    vscode 配置 C/C++ 编译环境的详细图文教程

    这篇文章主要介绍了vscode 配置 C/C++ 编译环境的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • C++中实现线程安全和延迟执行详解

    C++中实现线程安全和延迟执行详解

    这篇文章主要为大家详细介绍了C++中实现线程安全和延迟执行的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以了解下
    2024-01-01
  • C语言实现航班管理系统

    C语言实现航班管理系统

    这篇文章主要为大家详细介绍了C语言实现航班管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • C++自定义数据类型方法详情

    C++自定义数据类型方法详情

    这篇文章主要介绍了C++自定义数据类型方法详情,总结了两种方法,分别是typedef声明和枚举类型enum,相关内容需要的小伙伴可以参考下面文章内容,希望对你的学习有所帮助
    2022-03-03

最新评论