jtcgreyfox Posted January 8, 2009 Share Posted January 8, 2009 I got inspired by the webcam laser range finder idea from a few episodes ago, and decided to make my own independently with the only language I am ok at, C. To start with, i thought about how to make the images at all useful. Having taken some webcam snapshots, i quickly realized the red dot from the laser pointer isnt all THAT bright. So i messed around with brightness and contrast of the images. Resulting in a black and white image, maxed out contrast, and very high brightness, to create an image with a white dot where the laser is, black everywhere else (bar white from ceiling lights) My problem is, I want to be able to alter the contrast of the webcam capture using C, so I would be able to edit the contrast of each image as it is captured from dorgem, resave it, and THEN work on the maths of the laser range. Looking at the file structure of image files. I figured .bmp is the best for its simplicity. Although since it is written to the file backwards, i'm not so sure. This would mean i wouldn't be able to edit the image contrast on the fly, I would need to generate a new image file entirely, and work from the 2nd image, which doesn't satisfy my need for pretty programming. Thanks. EDIT: I have found - //Converts to a percent //[0, 1] New_Value = Old_Value / 255 //Centers on 0 instead of .5 //[-.5, .5] New_Value -= 0.5 //Adjusts by Contrast_Value //[-127.5, 127.5], usually [-1, 1] New_Value *= Contrast_Value //Re-add .5 (un-center over 0) //[-127, 128] New_Value += 0.5 //Re-multiply by 255 (un-convert to percent) //[-32385, 32640], usually [0, 255] New_Value *= 255 //Clamp [0, 255] If(New_Value > 255) New_Value = 255 If(New_Value < 0) New_Value = 0 from http://www.developerfusion.com/article/544...and-contrast/3/ But I still have the problem of HOW to edit the image. I don't quite understand the use of an array here. And the actual image file wouldn't be simple enough to use that. The above code is C# right? well its close enough to C but if someone could explain how to map a .bmp to a 2d array that would be a cool way to solve the problem too. But i really want to avoid generating a 2nd image if i can. Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.