在图像点鼠标将坐标储存opencv
来源:互联网 发布:办公软件下载官方网站 编辑:程序博客网 时间:2024/06/08 01:13
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
using namespace cv;
Mat org;
int n = 0;
vector<Point> capturePoint;
void on_mouse(int event, int x, int y, int flags, void *ustc)//event鼠标事件代号,x,y鼠标坐标,flags拖拽和键盘操作的代号
{
Point pt;//坐标点;
char coordinateName[16];
if (event == CV_EVENT_LBUTTONDOWN)//左键按下,读取坐标,并在图像上该点处划圆
{
pt = Point(x, y);
cout << x << " " << y << endl;
capturePoint.push_back(pt);
cout << capturePoint[n].x << " " << capturePoint[n].y << endl;
cout << "n=" << n << endl;
n++;
circle(org, pt, 2, Scalar(255, 0, 0, 0), CV_FILLED, CV_AA, 0);//划圆
sprintf(coordinateName, "(%d,%d)", x, y);
putText(org, coordinateName, pt, FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 0, 0, 255), 1, 8);//在窗口上显示坐标
if (n >= 1)
{
//imshow("org", org);
cvDestroyAllWindows();
}
}
}
int main()
{
org = imread("one.png", 1);
namedWindow("org", 1);//定义一个org窗口
setMouseCallback("org", on_mouse, 0);//调用回调函数
imshow("org", org);
waitKey(0);
cout << n << endl;
cout << capturePoint.size() << endl;
cout << capturePoint[0].x << endl;
ofstream file("sample.txt");
if (!file)
{
cout << "open file error!";
return 1;
}
vector<Point>::iterator it = capturePoint.begin();
for (; it != capturePoint.end(); ++it)
{
file << it->x << ',' << it->y << endl;
}
file << endl;
file.close();
return 0;
}
阅读全文
0 0
- 在图像点鼠标将坐标储存opencv
- Opencv--鼠标获取图像坐标
- 利用opencv,在图像中获取鼠标按下时坐标和灰度值
- OpenCV: 鼠标获取坐标
- opencv鼠标获取坐标
- OpenCv中读取图像某点的坐标
- 鼠标在图像中划线,返坐标值
- opencv中的图像坐标
- 在服务器段处理鼠标双击点坐标
- MFC中用OpenCV显示图像,并跟踪鼠标显示图像的坐标与像素
- opencv 鼠标截取图像
- openCV 鼠标获取坐标值
- VC 获取鼠标点坐标
- 利用OpenCV鼠标事件设置函数setMouseCallback显示图像像素的RGB、HSV和坐标值!
- openCV 鼠标在图像上框选目标---单目标和多目标
- 【OpenCV】通过鼠标在图像中绘制RotatedRect旋转矩形
- opencv储存图像的两种方式
- opencv:图像的创建和储存
- C语言位运算符:与、或、异或、取反、左移和右移
- 微信小程序开发,带动健身行业创业新热潮
- checkableBehavior="all"踩坑
- C#串口通信
- CSS知识点
- 在图像点鼠标将坐标储存opencv
- HBuilder反撤销快捷键
- TensorFlow练习(三)——添加层 def add_layer()
- vimの修改单词的两种方法
- 交换机端口untaged、taged、trunk、access 的区别
- redis随笔(一)----redis数据淘汰策略
- uva 10934 Dropping water balloons(dp)
- 对于将数组分类并输出
- 8月英语总结