OpenCV 对图像序列实时可视化标记关键点

问题:

         在进行特征学习时,经常需要将大量的图像提取出特征点(关键点),因此,想到在显示图像的时候,使用鼠标的双击操作来确定 关键点的位置。

         

操作要点:

        1显示图像

         2鼠标双击事件处理:左键双击,增加鼠标所在的点为新的关键点;右键双击,删除最近添加的关键点,与双击时的鼠标位置无关。

         3实时显示:显示最新添加的点

         4提取的关键点导出

 

代码:

 

#include "opencv2/opencv.hpp"

using namespace cv;
using namespace std;

#define CONFIRM_PT_NUM (20)

struct ConfirmParam {
    string window; // 窗口名称
    Mat*   image;
    Point  points[CONFIRM_PT_NUM];
    int    point_idx;
};


void on_mouse_cb_confirm_pt (int event, int x, int y, int flags, void* userdata) {
    ConfirmParam* param = (ConfirmParam *) userdata;
    Mat display;
    param->image->copyTo (display);
    
    switch (event) {
        case CV_EVENT_LBUTTONDBLCLK: { // 左键双击:增加点
                if (param->poin
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值