Introducing Image Watch - A VS 2012 Plug-In for C++ Image and Video Debugging
- Posted: Feb 27, 2013 at 10:24 AM
- 56,333 Views
- 16 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Image Watch is a new Visual Studio 2012 plug-in for debugging C++ image and video processing applications, for example photo or augmented reality apps. Image Watch provides a watch window that can display in-memory bitmaps during debugging, so you no longer need to litter your code with "save-this-intermediate-image-to-a-file" statements when tracking down bugs. The initial release has built-in support for OpenCV image types and can be extended for viewing user-defined image types as well.
Here, Wolf Kienzle, Senior Research Developer, Interactive Visual Media group, Microsoft Research Redmond, explains and demos this excellent new tool for C++ developers building image, video or augmented reality apps. In effect, you can step into pixels. Excellent!
Already have a Channel 9 account? Please sign in
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
Very cool, it's almost like having the Processing environment in the VC++ IDE!
I agree. Very cool.
This should be integrated in all future versions of VS supporting all languages. (including all .NET framework image types of course)
If you have technical questions you'd like addressed, we're going to dig into this in much more detail soon, so feel free to ask here.
C
Does this only work with opencv? Can you please give some more infos on video debugging?
Really amazing tool. Have worked with it barely one day and I'm already wondering how I could have ever lived without it.
Any chance we could get support for additional channel formats? For example, I'm currently working with OpenGL textures stored as ABGR. It would be awesome if you could add some more permutations there. Or maybe even a generic mechanism for mapping color channels? After all, as inhabitants of the C++ land we are not afraid of bitmasks.
@daniel z: You can view your own image types; details are described here. Regarding your second question, Image Watch does not play videos, but you can view individual frames as long as they are in a supported format (uncompressed interleaved 8bit RGB, for example).
@ComicSansMS: Thanks! Yes, additional channel formats is something we are definitely considering. Please stay tuned!
Are you going to support planar images in the future?
So close to being useful. We don't use OpenCV but would love to get the natvis description for some common MS formats such as:
Gdiplus::Bitmap, Gdiplus::Image, WIC Images, HBITMAP
One other note, after installing this and restarting VS2012 Up1 my color scheme changed. I have the MS theme editor and it unexpectedly switched from the Light theme to a Red theme.
@AlessandroV: Yes, we are going to support planar images in the future, possibly with the next update.
@schroedl: The natvis description requires a pointer to the pixel data, which is not immediately accessibly with opaque handles like HBITMAP. That said, you can write natvis descriptions for the corresponding "locked" structures, e.g. BitmapData. We are currently working on a mechanism for supporting opaque types, but these are a bit tricky since you potentially need to run code in your app to get at the pixels.
Really cool idea, thank you for sharing this! I suppose that Windows-hosted OpenCV hackers will now have a huge advantage in comparison to others =)
+1 for "So close to being useful". HICON, HBITMAP, HCURSOR, IWICBitmapSource, Gdiplus::Bitmap and your potential user base expands by 100,000%
I'm having trouble displaying 4-channel data with the RGBA format. The image info says '3 x UINT8 [RGBA]' and the image displayed looks like it was drawn with a 3-byte pixel stride instead of 4 bytes. When I use BGRA format the stride is correct and the viewer says 4 x UINT8. Is this a bug or have I messed up my natvis somehow?
Apart from that little issue I'm really liking this plug-in. Thanks!
@M Hogdahl:Yes, that's a bug, sorry. We'll have that fixed in the next update. Please see the Q&A section on the VS Gallery page for more information.
Remove this comment
Remove this thread
close