Мои извинения за запутанный заголовок. В основном я хочу использовать курсор мыши для отображения значения пикселя изображения перед применением цветовой карты. Является ли это возможным? Я знаю, как получить координаты (x, y) из здесь Вот мой код:
cv::Mat falseColorsMap;
void onMouse( int event, int x, int y, int, void* );
void showImage( cv::Mat frameMat){
double min;
double max;
cv::minMaxLoc(frameMat, &min, &max);
std::cout << min << "," << max << "\n";
cv::Mat adjMap;
frameMat.convertTo(adjMap,CV_8UC1, 255 / (max-min), -min); // expand your range to 0..255. Similar to histEq();
applyColorMap(adjMap, falseColorsMap, cv::COLORMAP_JET);
namedWindow( "Out", CV_WINDOW_NORMAL );// Create a window for display.
resizeWindow("Out", 800, 600);
setMouseCallback( "Out", onMouse, 0 );
cv::imshow("Out", falseColorsMap);
waitKey(0);
}
// Function onMouse displays cursor values
void onMouse( int event, int x, int y, int, void* )
{
if ( event != CV_EVENT_LBUTTONDOWN )
return;
Point pt = Point(x,y);
std::cout<<"("<<pt.x<<", "<<pt.y<<") ...... "<<(falseColorsMap.at<int>(y,x)) << '\n';
}
Как получить значение пикселя frameMat при использовании курсора мыши? Спасибо за вашу помощь!