美文网首页
opencv 鼠标取图片中的像素值

opencv 鼠标取图片中的像素值

作者: hirolin | 来源:发表于2017-11-28 23:01 被阅读0次

用鼠标取图片中的像素值

#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
bool flag = false;
int xvalue = 0;
int yvalue = 0;
Mat image,image1,image2;
void mousecallback(int event, int x, int y, int flags, void* userdata);
int main(int argc, char* argv[])
{
 namedWindow("imageshow", 0);
 Mat image = imread("F:\\6.jpg", 1);
 if(!image.data)
 {
  cout<<"the image is error"<<endl;
  return 0;
 }
 imshow("imageshow", image);
 image.copyTo(image1);
 cv::setMouseCallback("imageshow", mousecallback, 0);
 waitKey(0);
 return 0;
}
void mousecallback(int event, int x, int y, int flags, void* userdata)
{
 image1.copyTo(image2);
 switch (event)
 {
 case EVENT_LBUTTONDOWN:
  {
   flag = true;
  }
  break;
 case EVENT_LBUTTONUP:
  {
   if(flag)
   {
    xvalue = x;
    yvalue = y;
    flag = 0;
    int b = image1.at<Vec3b>(yvalue, xvalue)[0];
    int g = image1.at<Vec3b>(yvalue, xvalue)[1];
    int r = image1.at<Vec3b>(yvalue, xvalue)[2];
    cout<<"B:"<<b<<' '<<"G:"<<g<<' '<<"R:"<<r<<endl;
   }
  }
  break;
 }
}

相关文章

  • opencv 鼠标取图片中的像素值

    用鼠标取图片中的像素值

  • 004 图像像素的读写操作

    本节内容:图像像素操作:遍历与访问 C++ 在C++中访问OpenCV Mat对象每个像素点的像素值有两种方式: ...

  • OpenCV图像处理(八)提取水平线和垂直线

    1、原理 膨胀:取卷积核内的像素最大值。腐蚀:取卷积核内的像素最小值。 去掉垂直线,首先把图像转为二值图像(线条为...

  • 2020.2.10

    今日QT小知识 1.坐标 鼠标坐标 pos() 获取鼠标当前所在基于屏幕的坐标,坐标即像素值。 qwidget.f...

  • OpenCV For Unity 实现简单抠图

    Opencv的抠图的思路非常简单,就是对一个像素点进行判断,如果是需要剔除的像素,就把该像素的A通道改为0,即变为...

  • 7.2 方框滤波

    OpenCV还提供了方框滤波方式,与均值滤波的不同在于,方框滤波不会计算像素均值,在均值滤波中,滤波结果的像素值是...

  • 图像插值

    最临近插值 最近邻插值在图像放大时补充的像素取最临近的像素的值。由于方法简单,所以处理速度很快,但是放大图像画质劣...

  • OpenCV 获取像素值的几个方法

    获取单通道矩阵的值 对单通道矩阵的进行赋值 获取多通道矩阵的值

  • python:将图片转化为字符画

    原理: 将简单的表情图取灰度图像二值化,然后不同值用不同的字符串代替该像素即可 扩展一下,可自行定义一个数值(最好...

  • opencv+python学习记录(十三)中值平滑

    中值平滑指对邻域中的像素点按灰度值进行排序,然后选择该组的中值作为输出的灰度值。 opencv提供的函数cv2.m...

网友评论

      本文标题:opencv 鼠标取图片中的像素值

      本文链接:https://www.haomeiwen.com/subject/sasybxtx.html