I want to share my new work with you guys: https://github.com/StefanStavrev/oiio/commit/8bcc2f7a010c2f33203d33bc0f708ff57bc8e212
Now I have implemented everything I planned for the GSOC application. I would be very happy to work the whole summer to get all this code approved, as Larry said, there is a lot of work. Thanks for any feedback, Stefan On 3/29/12, Stefan Stavrev <[email protected]> wrote: > Thanks Larry :) indeed there is much more to be done, I am excited. > > The next two days I will work on a blog where I will talk about some > old projects, for the GSOC application. Then I will continue working > on the actual proposal. So in the mean time any ideas you have, please > send them to this topic "GSOC Code and Proposal". > > By the way, I will have time left for more algorithms before 6 April. > Also I would like to get at least one algorithm approved before 6 > April. So, goals are set, I am going back to work :) > > Stefan > > On 3/29/12, Larry Gritz <[email protected]> wrote: >> Stefan, it feels like you've crammed a whole summer project into your >> qualifying patch. :-) >> >> The collection of your ip_foo functions are a great list of new and >> helpful >> image processing functionality to add to ImageBufAlgo and oiiotool. But >> none of them are in the right places, with the right style, or >> sufficiently >> general. By which I mean... some look like they will work on float only, >> some seem to assume a single channel or a 3-channel image, often they >> seem >> to assume a 0.0-1.0 range of pixel values, operate only on the whole >> image >> and with a single thread, and so on. >> >> I think a great summer project proposal would be to take this list of >> functionality -- for which you've demonstrated that you understand the >> math >> of the guts -- and carefully implement them one by one in a totally >> industrial strength, bulletproof fashion: >> >> 1. Operating on images with an arbitrary number of channels (specifying a >> single channel or all channels as a parameter), except in the rare case >> where it's clearly non-sensical to do so. >> 2. Operating on any of our data types. >> 3. Taking a pixel begin/end range so it can operate on a region of >> interest >> and/or be easily broken up into tiles for parallel execution. >> 4. Working in 3D as well, where it makes sense (i.e. zbegin/end in >> addition >> to x and y). >> 5. Working with arbitrary pixel data values, not assuming values are >> always >> on [0,1] (i.e., HDR imagery) except for operations where that clearly >> makes >> no sense. >> 6. Robustly dealing with images of different sizes and/or not overlapping >> exactly. >> 7. Taking a 'threads' parameter, which: if 1 just computes in the thread >> that called the function; if > 1 will split the image (if large enough) >> into >> n strips or tiles and spawn threads which each call itself recursively >> with >> threads=1 to dole out subsections of the image for parallel work, and for >> threads=0 uses the OpenImageIO global 'threads' variable to determine how >> many threads to use. >> >> This sounds worse than it actually is. I think you'll find that after we >> work out the methodology for the first one or two, all the others will >> follow the same general pattern fairly closely, and the results will be a >> really solid set of functionality. >> >> If you wanted to do this project, I would consider what you have already >> shown us as a qualifying patch, even though I won't want to commit >> anything >> until it's all in this kind of final state. You've clearly already >> demonstrated a pretty good understanding of how to patch oiiotool and >> implement functions that work on ImageBuf's. >> >> -- lg >> >> >> On Mar 28, 2012, at 8:30 PM, Stefan Stavrev wrote: >> >>> I have added command line functionality for the algorithms and >>> documented their usage. Test images are also provided, so enjoy >>> testing and let me know if there are some problems. >>> >>> https://github.com/StefanStavrev/oiio/commit/f2f5d7ded925f2ac5fecc3f6190939db18dc8b1e >>> >>> Looking forward to hear from you. >>> >>> Stefan >>> >>> On 3/25/12, Stefan Stavrev <[email protected]> wrote: >>>> Hello Robert, >>>> >>>> I pulled a request. I haven't added command line functionality for the >>>> algorithms yet. For now, the only way to test them is: >>>> >>>> 1. Extract this archive(the same from previous message) to some >>>> location. >>>> http://www.mediafire.com/?nefag5h5w7e1o74 >>>> >>>> 2. Change the variable "path" on line 1497 in oiiotool.cpp, to the >>>> location you extracted. >>>> >>>> 3. Replace your oiiotool.cpp with the one from the archive. >>>> >>>> 4. In the archive you will find folder "ip", and in it folders for >>>> each group of algorithms such as corners, edges, etc. In each there is >>>> tests folder. In there you will find code for each algorithm, that you >>>> need to copy to oiiotool.cpp in order to test the algorithm. Basically >>>> you just replace the code in main in oiiotool.cpp. >>>> >>>> Stefan >>>> >>>> On 3/25/12, Robert Matusewicz <[email protected]> wrote: >>>>> Hi, >>>>> >>>>> Could You prepare a pull request from Your changes? It would be easier >>>>> for us to review it >>>>> >>>>> Cheers >>>>> Robert >>>>> >>>>> W dniu 25 marca 2012 00:46 użytkownik Stefan Stavrev >>>>> <[email protected]> napisał: >>>>>> Hello >>>>>> >>>>>> The last two days I implemented and tested Canny edge detector and >>>>>> Harris corner detector: >>>>>> >>>>>> Canny edge detector: >>>>>> http://postimage.org/image/gt04nokff/ >>>>>> http://postimage.org/image/we8hpungl/ >>>>>> >>>>>> Harris corner detector: >>>>>> http://postimage.org/image/m7nhnpvq7/ >>>>>> >>>>>> I send you just one file, my code is from line 1497 to the end in >>>>>> oiiotool.cpp, you can download code, test images and test files here: >>>>>> http://www.mediafire.com/?nefag5h5w7e1o74 >>>>>> >>>>>> I will wait for comments here before I submit to github. But anyways >>>>>> I >>>>>> would like to implement command line functionality for all these >>>>>> algorithms before I submit. >>>>>> >>>>>> Summary of what I have implemented so far: >>>>>> >>>>>> 1. Histograms >>>>>> - histograms for 8-bit and 16-bit grayscale images >>>>>> - luminance histograms and per channel histograms for rgb images >>>>>> - cumulative histograms >>>>>> 2. Point operations for 8-bit grayscale images >>>>>> - contrast, brightness, invert, threshold >>>>>> - auto-contrast and modified auto-contrast (better handles extreme >>>>>> values) >>>>>> - histogram equalization >>>>>> - two different methods for histogram specification(matching one >>>>>> image to another) >>>>>> - gamma correction >>>>>> - alpha blending >>>>>> 3. Filters >>>>>> - box filter >>>>>> - general linear filter of arbitrary size >>>>>> - min and max non-linear filters >>>>>> - median filter >>>>>> 4. Edges >>>>>> - sobel and prewitt edge detectors >>>>>> - canny edge detector >>>>>> - laplace sharpening >>>>>> - unsharp mask >>>>>> 5. Corners >>>>>> - harris corner detector >>>>>> >>>>>> I will implement more algorithms these days and then I will work on >>>>>> allowing the user to call them from command line. In the end, >>>>>> hopefully Tuesday or Wednesday night, I will make one pdf where I >>>>>> will >>>>>> show the use of all these algorithms to make it easy for you guys to >>>>>> see what I have done. So far I have 1200 lines of code. >>>>>> >>>>>> Thank you for any feedback, it means a lot. >>>>>> >>>>>> Stefan >>>>>> _______________________________________________ >>>>>> Oiio-dev mailing list >>>>>> [email protected] >>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>>>> >>>>> >>>>> >>>>> -- >>>>> My public key can be found at https://keyserver2.pgp.com >>>>> _______________________________________________ >>>>> Oiio-dev mailing list >>>>> [email protected] >>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>>>> >>>> >>> _______________________________________________ >>> Oiio-dev mailing list >>> [email protected] >>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> >> -- >> Larry Gritz >> [email protected] >> >> >> _______________________________________________ >> Oiio-dev mailing list >> [email protected] >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> > _______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
