利用opencv通过点击鼠标获取一张图片上点的像素点坐标

2023-11-10

#include "stdafx.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace cv;
using namespace std;
//using namespace cv::xfeatures2d;
//using namespace cv::ml;

Mat src;
bool down = false;
Point prept = Point(-1, -1);
Point curpt = Point(-1, -1);
void on_mouse(int event, int x, int y, int flags, void* ustc)
{

	if (event == CV_EVENT_LBUTTONDOWN)    //右键按下
	{
		prept = Point(x, y);
		cout << x << " " << y << endl;
		down = true;
	}
	else if (event == CV_EVENT_LBUTTONUP)     //右键放开
		down = false;

	if (down == true && event == CV_EVENT_MOUSEMOVE)    //右键按下且鼠标移动
	{
		curpt = cvPoint(x, y);
		line(src, prept, curpt, Scalar(255, 0, 0), 5);
		waitKey(5);        //可以解决画图时卡顿的问题
		imshow("src", src);
		prept = curpt;
	}
}

int main()
{
	src = imread("C:\\Users\\Administrator\\Desktop\\3.png", 1);

	cvNamedWindow("src");
	cvSetMouseCallback("src", on_mouse, 0);//关键内置函数

	imshow("src", src);
	cvWaitKey(0);
	cvDestroyAllWindows();
	return 0;
}


在这里插入图片描述
在这里插入图片描述
其中#include <opencv2/highgui/highgui_c.h>可以加入此头文件,防止后面的cvNameWindow等函数无法识别。此外#include "stdafx.h"可以删除。
CV_EVENT_LBUTTONDOWN可以将CV_去掉,如果出现无法识别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用opencv通过点击鼠标获取一张图片上点的像素点坐标 的相关文章

  • IplImage 内的 IplImage

    是否可以使用 OpenCv JavaCv 将图像放置在图像内 例如我有一个 1000x1000 图像和一个 100x100 图像 在 600x600 的位置 我想将较小的图像放置在较大的图像内 假设蓝色框是 1000x1000 IplIma
  • opencv:如何将所有黑色像素转换为透明并将其保存到png文件

    如下图 我希望所有黑色像素都是透明的并将其保存为 png 文件 您可以像这样快速完成并矢量化 import cv2 import numpy as np Load image as Numpy array in BGR order na c
  • 从笔记本中提取文本

    我正在尝试从图像中提取手写文本 我使用 python 和 opencv 函数 例如 find contours 当我使用像这样的图像时 一切进展顺利 它工作得很好 因为我有一个简单的背景 但后来我用这张图片测试了它 由于背景中有笔记本的线条
  • 使用 Xcode 为 OS X Lion / Mountain Lion 编译 OpenCV (2.3.1+)

    谁能给我提供一些如何使用 Xcode 在 OS X Lion 上编译 OpenCV 2 3 1 的详细指南 我对此很生气 我得到了源代码 使用 cmake 创建 Xcode 模板并尝试构建它 但它失败并出现大约 200 个错误 提前致谢 多
  • 使用 OpenCV 绘制固定的网格线集

    是否可以根据 OpenCV 示例文件中颜色检测示例的输出 在所有交叉点处绘制具有定义点的用户定义网格线 基本上 网络摄像头需要从您上方检测人的头部和肩膀 然后 当检测到一个人时 我需要网格线在那里 以便我能够知道在 x 轴和 y 轴 前额和
  • OpenCV 中更新窗口的 waitKey() 的替代方法

    到目前为止我见过的所有示例和书籍都建议使用 waitKey 1 来强制重新绘制 OpenCV 窗口 这看起来很奇怪而且太老套了 不必要的时候为什么还要等待 1 毫秒呢 还有其他选择吗 我尝试了 cv updateWindow 但它似乎需要
  • 变形:Opencv 使用 Visual Studio 将图像显示到曲面屏幕

    我正在尝试使用 opencv API 来扭曲图像 以便将其显示到曲面屏幕上 我已经浏览了opencv中提供的翘曲apihere http docs opencv org 2 4 modules stitching doc warpers h
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind
  • 附加信息:OpenCV:使用 c# 的不同大小的对象

    目前 我的 EmguCV c 代码面临问题 我试图从数据库中识别我的图像 但它不起作用 一旦检测到我的脸 它就会崩溃 然后会出现此错误 附加信息 OpenCV 不同大小的对象 我尝试寻找这个错误 但我一无所知 这是我的代码 Action f
  • 从索贝尔确定图像梯度方向?

    我正在尝试使用 openCV 的 Sobel 方法的结果来确定图像梯度方向 我知道这应该是一个非常简单的任务 我从此处复制了许多资源和答案中的方法 但无论我做什么 所得方向始终在 0 57 度之间 我希望范围为 0 360 我相信所有的深度
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 从视频/图像中提取元数据

    我从 IP 摄像机获取 MJPEG 流 我正在查看该流并将其保存在计算机上 可以找到我的操作代码here https stackoverflow com questions 21702477 how to parse mjpeg http
  • 如何使用 SimpleBlobDetector 获取 blob 的额外信息?

    robot sherrick 回答了我这个问题 https stackoverflow com a 13534094 1705967 这是他回答的后续问题 cv SimpleBlobDetectorOpencv 2 4 中的 看起来非常令人
  • 使用 cv2 在 python 中创建多通道零垫

    我想用 cv2 opencv 包装器在 python 中创建一个多通道 mat 对象 我在网上找到了一些例子 其中 c Mat zeros 被 numpy zeros 替换 这看起来不错 但似乎没有多通道类型适合 看代码 import cv
  • OpenCV 旋转图像而不裁剪澄清

    我想扩展这个主题 参考用户 Lars Schillingmann 给出的这个 SO 问题和接受的答案 在 C 中的 OpenCV 中旋转图像而不裁剪 https stackoverflow com questions 22041699 ro
  • opencv如何使用鼠标事件不规则地选择图像区域? c/c++ [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 最近在学习opencv 有没有办法使用鼠标事件选择图像区域 我已经尝试过三角形的了 如果我想选择特定区域而不是三角形怎么办 谢谢你 我对此进
  • VideoCapture 未检测到 uEye 摄像头

    我的 uEye 相机遇到了一个问题 使用我的笔记本电脑摄像头 id 0 或 USB 上的网络摄像头 id 1 此行完美运行 TheVideoCapturer open 1 TheVideoCapturer 属于 VideoCapture 类
  • 使用 OpenCV 和 Python 叠加两个图像而不丢失颜色强度

    如何叠加两个图像而不损失两个图像的颜色强度 我有图像1和图像2 2 我尝试使用 0 5 alpha 和 beta 但它给我的合并图像的颜色强度只有一半 dst cv2 addWeighted img1 0 5 img2 0 5 0 但是当我
  • 在OpenCV中将YUV转换为BGR或RGB

    我有一个电视采集卡 其输入内容为 YUV 格式 我在这里看到了与此问题类似的其他帖子 并尝试尝试所述的所有可能的方法 但它们都没有提供清晰的图像 目前最好的结果是 OpenCVcvCvtColor scr dst CV YUV2BGR 函数
  • python openCV 中的人口普查变换

    我开始在一个与立体视觉相关的项目中使用 openCV 和 python 我找到了关于使用 openCV 在 C 中进行人口普查转换的文档页面 link http docs opencv org 3 1 0 d2 d7f namespacec

随机推荐

  • ClickHouse学习笔记(一):ClickHouse安装、数据类型、表引擎、SQL操作

    ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库 DBMS 使用C 语言编写 主要用于在线分析处理查询 OLAP 能够使用SQL查询实时生成分析数据报告 一 ClickHouse的特点 1 列式存储 以下面的表为例
  • 区块链倪老师:区块链行业的10种赚钱方式

    躁 是这个时代的特性 急于求成 成为了大部分人的真实写照 急功近利 这样的贬义词却更容易被奉为圭臬 区块链作为近些年广为人知的 风口 很多人压根不明白其究竟是怎么回事就急着 梭哈 尤其是在这个 躁 的时代 大部分人不求 知之甚深 只求 一夜
  • SpringBoot--基础--6.1--servlet的3大组件--Servlet

    SpringBoot 基础 6 1 servlet的3大组件 Servlet 代码位置 https gitee com DanShenGuiZu learnDemo tree mysql mybaties DB springboot lea
  • pip install conda之后出现问题

    本篇文章主要用于解决 在Linux环境下 在终端输入命令pip install conda之后出现异常报错 报错的结果粘贴如下 ERROR The install method you used for conda probably eit
  • C++11 新特性

    1 指针 智能指针 nullptr shared ptr std weak ptr 1 nullptr 作用 C 11 引入了 nullptr 关键字 专门用来区分空指针 0 原有问题 传统 C 会把 NULL 0 视为同一种东西 这取决于
  • 第二十三章、 Model/View便利类表格部件QTableWidget详解

    老猿Python博文目录 专栏 使用PyQt开发图形界面Python应用 老猿Python博客地址 一 引言 表格部件为应用程序提供标准的表格显示工具 在表格内可以管理基于行和列的数据项 表格中的最大数据项数为总行数和总列数的乘积 另外在表
  • ROC曲线与混淆矩阵的绘制

    20200813 引言 ROC曲线的绘制过程 混淆矩阵的绘制 问题 1 ROC曲线的绘制 ROC曲线的绘制绘制需要分类器能够返回相应的分类概率值 from sklearn metrics import roc curve ns fpr ns
  • Vue+SpringBoot使用POI导出EXCEL

    https blog csdn net qq 44209274 article details 110087085
  • shell命令基本操作1

    sed指定行插入 sed i i 或者 a 插入列paste 或者awk http bbs chinaunix net thread 342540 1 1 html shell定义函数func 函数体 shell算术运算 c a b htt
  • servlet-url-map

    import javax servlet ServletConfig import javax servlet ServletContext import javax servlet ServletException import java
  • Python学习笔记

    安装python 3 6 8 下载地址 cd usr local tar xzvf Python 3 6 8 tgz 带上ssl模块 一会pip会用 cd Python 3 6 8 configure with ssl 安装gcc编译器 y
  • Hibernate各种主键生成策略

    Hibernate各种主键生成策略详解 1 assigned lt 特点 可以跨数据库 人为控制主键生成 应尽量避免 gt 主键由外部程序负责生成 在 save 之前必须指定一个 Hibernate不负责维护主键生成 与Hibernate和
  • 队列的数组实现(C语言描述)

    队列也是一种简单却很有用的数据结构 其特点是先进先出 基本操作是enqueue 入列 和dequeue 出列 下面给出数组实现的代码 ifndef QUEUE H INCLUDED define QUEUE H INCLUDED struc
  • 使用jsonfield做注解名称值替换

    package cn superred support utils import cn hutool db meta Column import com alibaba fastjson annotation JSONField impor
  • tomcat的启动过程分析

    一 了解类加载器 要了解类加载器首先要了解什么是类加载机制 Java虚拟机把描述类的数据从Class文件加载进内存 并对数据进行校验 转换解析和初始化 最终形成可以呗虚拟机直接使用的Java类型 这就是虚拟机的类加载机制 虚拟机设计团队把类
  • 复制构造函数

    和普通构造函数的区别 普通构造函数在对象创建时被调用 复制构造函数在用已有对象复制到一个新对象时被调用 复制构造函数由编译器调用来完成一些基于同一类的其他对象的构建及初始化 其形参必须是引用 但并不限制为const 一般普遍的会加上cons
  • Invalid or unexpected token:数据格式错误

    Uncaught SyntaxError Invalid or unexpected token 翻译成中文是 捕获的查询无效或意外的标记 代码逻辑没问题 那么就是数据问题了 把页面要展示的数据全部检查一遍后 果然发现疑点 1 多了单引号
  • 7-10 查找指定字符 (15分)

    7 10 查找指定字符 15分 本题要求编写程序 从给定字符串中查找某指定的字符 输入格式 输入的第一行是一个待查找的字符 第二行是一个以回车结束的非空字符串 不超过80个字符 输出格式 如果找到 在一行内按照格式 index 下标 输出该
  • [CTFshow]吃瓜杯复现wp

    热身
  • 利用opencv通过点击鼠标获取一张图片上点的像素点坐标

    include stdafx h include opencv2 highgui highgui hpp include opencv2 imgproc imgproc hpp include