I thinking of putting all my histograms into a tabbed panel. It some what seemed to be more professional, and maybe a lot nicer in terms of GUI layout.
I think I have seen such design out there, from some photo-editing suite program, since it is enough for the professional programmers, I don't think that I have any reason to not to try this layout and see how it fits in.
I'm an undergraduate currently doing Digital Media Computing subject. This blog records my progresses, thoughts and ideas as I move along with my image-processing assignment project.
Tuesday, August 30, 2011
Matrix and Neighborhood Operation
Neighborhood Op
Even though it is a bit late, I have finally programmed a functionally neighborhood mapper class for my image processing assignment. By my design, it should be able to adapt to square matrices of any given size, but it is yet to be tested.
Neighborhood mapper takes in some simple information, i.e.: photo dimension, matrix etc. And then perform calculations using the matrix and generates a new image based on the transformation information carried by the matrix. However, due to the fact that this is an assignment project, details regarding such operation, or any mathematical/programming sequence will not be revealed, for now.
I'll proceed to testing different neighborhood operation, i.e.: blur, sharpen, edge detection, sharpen, and any similar operation i can come out with.
Point Op
I realized that there are some brightness problem with my posterize filter, the output seemed to be a lot less bright that it supposed to be. I think it is just a simple mathematical problem, I will look into the posterize color table to justify the issue.
Misc
I will try to post some screen-shot to this blog, because I felt that it is pretty dull, and what's in this blog is just me talking about the process, some input and output photo will make this blog looks great.
Even though it is a bit late, I have finally programmed a functionally neighborhood mapper class for my image processing assignment. By my design, it should be able to adapt to square matrices of any given size, but it is yet to be tested.
Neighborhood mapper takes in some simple information, i.e.: photo dimension, matrix etc. And then perform calculations using the matrix and generates a new image based on the transformation information carried by the matrix. However, due to the fact that this is an assignment project, details regarding such operation, or any mathematical/programming sequence will not be revealed, for now.
I'll proceed to testing different neighborhood operation, i.e.: blur, sharpen, edge detection, sharpen, and any similar operation i can come out with.
Point Op
I realized that there are some brightness problem with my posterize filter, the output seemed to be a lot less bright that it supposed to be. I think it is just a simple mathematical problem, I will look into the posterize color table to justify the issue.
Misc
I will try to post some screen-shot to this blog, because I felt that it is pretty dull, and what's in this blog is just me talking about the process, some input and output photo will make this blog looks great.
Friday, August 26, 2011
Histogram
I implemented a working Histogram data class and Histogram plotter class ( both name are temporary ).
Histogram data class will read in an array of color, and counts the occurrence of the color value, and finally normalize the graph.
Histogram plotter class is a static class that export a JPanel drawn with the histogram with the data analyze by Histogram data class.
Histogram data class will read in an array of color, and counts the occurrence of the color value, and finally normalize the graph.
Histogram plotter class is a static class that export a JPanel drawn with the histogram with the data analyze by Histogram data class.
Lookup Table
I realized that for my current method for calculation of the point operation is not efficient as it performs calculation on every single pixel, hence for a 1 megapixel photo, 1 million calculations is needed to be performed.
So, by reference to Java, I build my own map/table to map values into new values. So, now I have 256 calculations to create the table, and 1 million array access to be done to extract the new values.
However, such approach only works for some cases. Gray Scale operation, for example, require the average of the RGB channels, which is not feasible to be done using color-mapping approach.
I also looked into some several approach regarding the neighbor-operation. Will start to implement a working prototype package during the weekend.
So, by reference to Java, I build my own map/table to map values into new values. So, now I have 256 calculations to create the table, and 1 million array access to be done to extract the new values.
However, such approach only works for some cases. Gray Scale operation, for example, require the average of the RGB channels, which is not feasible to be done using color-mapping approach.
I also looked into some several approach regarding the neighbor-operation. Will start to implement a working prototype package during the weekend.
Monday, August 22, 2011
Disassemble & Reassemble
Learned how to manipulate color with disassemble the int value into 4 distinctive components: Alpha, Red, Green, Blue, which is independent of each other, and can be easily manipulated.
And since I know how to disassemble them, I have almost no hurdle on putting them back together into 1 piece of int value.
I also have some precious personal time with 3 photo filter: negative/invert filter, gray scale filter, posterize filter.
And since I know how to disassemble them, I have almost no hurdle on putting them back together into 1 piece of int value.
I also have some precious personal time with 3 photo filter: negative/invert filter, gray scale filter, posterize filter.
Sunday, August 21, 2011
Pilot
Only when I was asked to create a blog account at blogger for the sake of recording the progress of my assignment, then I realized that I had one that I sign up for a long time ago... Anyhow, I will be kept on posting progress and screen-shot of my assignment, including test result or perhaps, code snippets.
Subscribe to:
Comments (Atom)