Image 浮动图像的预览像素值
假设我有一个浮点图像,例如热图像的32FC1格式,我希望使用(最好)ROS或openCV工具来显示它,同时还能看到鼠标悬停的当前像素值(例如温度)。我该怎么做?Rviz可以显示图像,但不会显示任何像素值。图像视图也可以显示图像,但将以RGB显示像素值 谢谢大家!Image 浮动图像的预览像素值,image,opencv,ros,Image,Opencv,Ros,假设我有一个浮点图像,例如热图像的32FC1格式,我希望使用(最好)ROS或openCV工具来显示它,同时还能看到鼠标悬停的当前像素值(例如温度)。我该怎么做?Rviz可以显示图像,但不会显示任何像素值。图像视图也可以显示图像,但将以RGB显示像素值 谢谢大家! #包括 #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #inc
#包括
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using std::cout;
using std::endl;
// create a global Mat
cv::Mat img_32FC1;
// function to be called on mouse event
// displays values on console, it can be modified to print values on image
void mouseEventCallBack (int event, int x, int y, int flags, void *userdata)
{
if(event == cv::EVENT_MOUSEMOVE)
{
cout<<"x = "<<x<<", y = "<<y<<" value = "<<img_32FC1.at<float>(y,x)<<endl;
}
}
int main()
{
// original color image, CV_8UC3
cv::Mat img_8UC3 = cv::imread("image.jpg",cv::IMREAD_UNCHANGED), img_8UC1;
// convert original image to gray, CV_8UC1
cv::cvtColor(img_8UC3, img_8UC1, cv::COLOR_BGR2GRAY);
// convert to float, CV_32FC1
img_8UC1.convertTo(img_32FC1, CV_32FC1);
img_32FC1 /= 255.0;
// create a window
cv::namedWindow("window",CV_WINDOW_AUTOSIZE);
// set MouseCallback function
cv::setMouseCallback("window", mouseEventCallBack);
// Display image
cv::imshow("window", img_8UC1);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
#包括
#包括
#包括
使用std::cout;
使用std::endl;
//创建一个全局Mat
cv::Mat img_32FC1;
//要在鼠标事件中调用的函数
//在控制台上显示值,可以修改以在图像上打印值
void mouseEventCallBack(int事件、int x、int y、int标志、void*userdata)
{
if(event==cv::event\u MOUSEMOVE)
{
库特