File size

File size

File size

File size

File size

254.6 MB

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!

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).

@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.

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?

Remove this comment

Remove this thread

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums, or
Contact Us and let us know.