OpenCV获取鼠标左键点击位置图像的像素值

本文实现功能:利用opencv获取鼠标左键点击位置图像的像素值(RGB像)

vs2015+opencv3.1

#include<opencv2\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
void on_mouse(int EVENT, int x, int y, int flags, void* userdata);
void main()
{
 namedWindow("【display】");
 Mat src;
 src = imread("F:\\lena_rgb.jpg");
 //cvtColor(src, src, COLOR_RGB2GRAY);
 setMouseCallback("【display】", on_mouse,&src);
 //以40ms刷新显示
 while (1)
 {
  imshow("【display】", src);
  waitKey(40);
 }

}

void on_mouse(int EVENT, int x, int y, int flags, void* userdata)
 {
  Mat hh;
  hh = *(Mat*)userdata;
  Point p(x, y);
  switch (EVENT)
  {
   case EVENT_LBUTTONDOWN:
   {

    printf("b=%d\t", hh.at<Vec3b>(p)[0]);
    printf("g=%d\t", hh.at<Vec3b>(p)[1]);
    printf("r=%d\n", hh.at<Vec3b>(p)[2]);
    circle(hh, p, 2, Scalar(255),3);
   }
   break;

  }

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Opencv使用鼠标任意形状的抠图

    本文实例为大家分享了Opencv使用鼠标任意形状抠图的具体代码,供大家参考,具体内容如下 主要的方法思路是:首先利用鼠标在图上画任意形状,利用掩码将任意形状抠出来 主要难点是怎么填充,因为鼠标在画线的时候,滑动越快,点是不连续的,利用floodFill和drawContours都是没有办法进行填充的,从另一个方面想,一个面是由很多个点组成的,虽然鼠标滑动保存下来的就是一系列点,可以利用这一系列点构成一个面,利用面的性质进行填充就比较简单了. 一.首先使用鼠标点击事件,鼠标点击事件的函数为: vo

  • OpenCV使用鼠标响应裁剪图像

    给定一幅图像,将其中的某一部分兴趣区域裁剪出来,这在PS中很好实现,但是使用openCV如何实现呢?因此本文主要介绍openCV使用鼠标响应来裁剪图像: 一.代码部分: #include "stdafx.h" #include "cv.h" #include <highgui.h> #include <stdio.h> IplImage* org = 0; IplImage* img = 0; IplImage* tmp = 0; IplIm

  • OpenCV实现鼠标框选并显示框选区域

    本文实例为大家分享了OpenCV实现鼠标框选并显示框选区域的具体代码,供大家参考,具体内容如下 cvSetImageROI函数(基于给定的矩形设置图像的ROI(感兴趣区域,region of interesting)) void cvSetImageROI(IplImage* image,CvRect rect) 参数: image 图像头,待处理图像 rect ROI 感兴趣区域矩形 cvResetImageROI函数(释放基于给定的矩形设置图像的ROI(感兴趣区域,region of int

  • OpenCV鼠标绘制矩形和截取矩形区域图像

    本文实例为大家分享了OpenCV鼠标绘制截取矩形区域图像的具体代码,供大家参考,具体内容如下 在opencv中利用鼠标绘制矩形,代码如下: #include <cv.h> #include <highgui.h> #include <stdio.h> #pragma comment( lib, "cv.lib" ) #pragma comment( lib, "cxcore.lib" ) #pragma comment( lib,

  • OpenCV获取鼠标左键点击位置图像的像素值

    本文实现功能:利用opencv获取鼠标左键点击位置图像的像素值(RGB像) vs2015+opencv3.1 #include<opencv2\opencv.hpp> #include<iostream> using namespace std; using namespace cv; void on_mouse(int EVENT, int x, int y, int flags, void* userdata); void main() { namedWindow("

  • android判断点击位置是否在扇形区域内

    在做仿支付宝记账本界面效果时遇到了一个问题,在环形图中点击每一个环是会显示出不同的内容,因此,必须判断用户到底点击了哪个圆环,网上查阅资料说可以根据颜色来判断,但是心里总是觉得根据颜色不是很好的解决方案(虽然可以解决这个问题),因此记录下自己解决次问题的方法,也有助于自己后续复习. 绘制扇形 要判断点击的位置是否是在扇形区域内,首先要绘制扇形,绘制扇形的方法可以使用canvas.drawArc()方法.这里介绍的是使用Path的方法,然后调用canvas.drawPath(ovalPath,pa

  • python环境下OPenCV处理视频流局部区域像素值

    参考我之前写的处理图片的文章:Python+OpenCV实现[图片]局部区域像素值处理(改进版) 开发环境:Python3.6.0 + OpenCV3.2.0 任务目标:摄像头采集图像(例如:480640),并对视频流每一帧(灰度图)特定矩形区域(48030)像素值进行行求和,得到一个480*1的数组,用这480个数据绘制条形图,即在逐帧采集视频流并处理后"实时"显示采集到的视频,并"实时"更新条形图.工作流程如下图: 源码: # -*- coding:utf-8

  • OpenCV图像处理之常见的图像灰度变换

    1.灰度线性变换 图像的灰度线性变换是图像灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度,从而达到图像增强的目的.灰度映射通常是用灰度变换曲线来进行表示.通常来说,它是将图像的像素值通过指定的线性函数进行变换,以此来增强或者来减弱图像的灰度,灰度线性变换的函数就是常见的线性函数. g(x, y) = k · f(x, y) + d 设源图像的灰度值为x,则进行灰度线性变换后的灰度值为y = kx + b (0<=y<=255),下面分别来讨论k的取值变化时线性变换的不同效果

  • jQuery实现获取table中鼠标click点击位置行号与列号的方法

    本文实例讲述了jQuery实现获取table中鼠标click点击位置行号与列号的方法.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net 鼠标点击位置行列号</title> </head> <bo

  • jquery获取点击控件的绝对位置简单实例

    在使用jquery的过程中,想取得当前点击input的绝对位置而去显示一个div,jquery本身提供offset和position这个两个方法,但position官方解释是relative to the offset parent,可以看到是针对父结点的,而offset官方解释relative to the document,貌似使用offset可以直接绝对定位.但是在网页中如果出现嵌套div的情况,top和left会叠加,因此这个时候如果要定位显示一个新的div就要把父亲结点的offset去

  • C++ OpenCV学习之图像像素值统计

    目录 1.常用的像素值统计 2.像素值统计计算 3.图像统计值分析 本课所用API查阅 opencv知识点: 图像像素最小/最大值 - minMaxLoc 图像像素均值/标准差 - meanStdDev 本课所解决的问题: 如何获取图像像素的最小/最大值? 如何获取图像像素的均值/标准差? 通过图像像素统计值我们能干什么? 1.常用的像素值统计 在图像分析的时候,我们经常需要对单通道图像的像素进行统计,以下4种是比较常用的 最小值(min) 最大值(max) 平均值(mean) 标准差(stan

  • 使用OpenCV获取图片连通域数量,并用不同颜色标记函

    一,原图和效果图 二,代码 //#########################产生随机颜色######################### cv::Scalar icvprGetRandomColor() { uchar r = 255 * (rand() / (1.0 + RAND_MAX)); uchar g = 255 * (rand() / (1.0 + RAND_MAX)); uchar b = 255 * (rand() / (1.0 + RAND_MAX)); return

  • python使用OpenCV获取高动态范围成像HDR

    目录 1 背景 1.1 什么是高动态范围(HDR)成像? 1.2 高动态范围(HDR)成像如何工作? 2 代码 2.1 运行环境配置 2.2 读取图像和曝光时间 2.3 图像对齐 2.4 恢复相机响应功能 2.5 合并图像 2.6 色调映射 2.7 工程代码 1 背景 1.1 什么是高动态范围(HDR)成像? 大多数数码相机和显示器将彩色图像捕获或显示为24位矩阵.每个颜色通道有8位,一共三个通道,因此每个通道的像素值在0到255之间.换句话说,普通相机或显示器具有有限的动态范围. 然而,我们周

  • python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法

    PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,利用它可以实现自动化任务 本章介绍了许多不同函数,下面是快速的汇总参考: moveTo(x,y)将鼠标移动到指定的 x.y 坐标. moveRel (xOffset,yOffset)相对于当前位置移动鼠标. dragTo(x,y)按下左键移动鼠标. dragRel (xOffset,yOffset)按下左键,相对于当前位置移动鼠标. click(x,y,button)模拟点击(默认是左键). ri

随机推荐