Leuten,RealSense OpenCV Tiefes Bild zu dunkel
Ich habe ein realsense SR300, aber wenn ich in einem opencv Fenster meiner Tiefenbild anzuzeigen, sieht es zu dunkel. Wie kann ich das beheben? Wenn ich die richtigen Beispiele benutze, sehen die Bilder gut aus, aber die Beispiele verwenden OpenGL. Aber ich brauche OpenCV für meine Projekte. Hier ist mein Code:
int main(int argc, char ** argv)
{
// realsense camera setup
rs::log_to_console(rs::log_severity::warn);
// Create a context object. This object owns the handles to all connected realsense devices
rs::context ctx;
if (ctx.get_device_count() == 0)
{
throw std::runtime_error("No device detected. Is it plugged in?");
}
// Access the first available RealSense device
rs::device * dev = ctx.get_device(0);
// Configure depth to run at VGA resolution at 30 frames per second
dev->enable_stream(rs::stream::depth, 640, 480, rs::format::z16, 30);
rs::intrinsics depth_intrin;
rs::format depth_format;
depth_intrin = dev->get_stream_intrinsics(rs::stream::depth);
depth_format = dev->get_stream_format(rs::stream::depth);
cv::namedWindow("Send Display Image", CV_WINDOW_AUTOSIZE);
/* Set callbacks prior to calling start(). */
auto depth_callback = [depth_intrin, depth_format](rs::frame f)
{
cv::Mat image(cv::Size(640, 480), CV_16UC1,
(void*)f.get_data(), cv::Mat::AUTO_STEP);
cv::imshow("Send Display Image", image);
cv::waitKey(1000/80);
};
/* callback to grab depth fream and publish it. */
dev->set_frame_callback(rs::stream::depth, depth_callback);
// Start streaming
dev->start();
While(1)
{
}
return 0;
}
Ich bin mir nicht sicher, warum mein Bild so dunkel ist. Ich möchte es so etwas wie die kinect oder Xtion suchen, wenn ich openni_launch von ROS laufen
Wenn ich die „normalisiert Tiefe“ Schritt tun, mein neues 8-Bit-Bild zu pulsieren scheint, das heißt, alle Pixel im Bild wirklich hell bekommen, dann richtig dunkel (alle Pixel um den gleichen Betrag). Es ist irgendwie komisch. Es dauert ungefähr eine Sekunde, um wirklich hell zu werden, und dann noch eine Sekunde, um wirklich dunkel zu werden, und wiederhole es. Weißt du, was das sein könnte? Vielleicht ein Problem mit der automatischen Belichtung oder etwas mit der Kamera? – Pototo
Wenn ich Max und Min auf Konstanten setze, verschwindet das Flackern. Wenn ich ein statisches Objekt betrachte, flackert es nicht. Wenn sich Dinge bewegen, geschieht Flackern. Es macht Sinn, da zumindest Alpha sich immer ändert. – Pototo
Sie sollten 'make_depth_histogram()' verwenden, um die Tiefenkarte zu visualisieren. Es ist ein wenig zeitaufwendiger, aber die Visualisierung sollte sowieso nur für Debugzwecke verwendet werden. – Catree