A few new bugs have popped up but some have been fixed.
Program can now cycle through a directory next/back and run on each item. Infrequently crashes (at random) due to Generic Error in GDI+, COM Dead Lock, or Argument Exceptions.
Trying to pinpoint why this is.
Thursday, June 30, 2011
Tuesday, June 28, 2011
WPF
Lots of bug fixes. It appears all memory managing has been fixed. The program only crashes for Argument exception when the bitmap is -somehow- blank/full of errors. Or the generic error occurring in GDI+.
On one occasion the program crashed due to a COM deadlock.
The program now creates a directory, and in it places the final processed image. Text files for measurements made along with a JPG/thumbnail of what the blob looks like in the original imaged named in a unique way which can always be converted back to the blob found.
On one occasion the program crashed due to a COM deadlock.
The program now creates a directory, and in it places the final processed image. Text files for measurements made along with a JPG/thumbnail of what the blob looks like in the original imaged named in a unique way which can always be converted back to the blob found.
Monday, June 27, 2011
Zoom and panning works
You are able to zoom and pan the image, but using the splitting / gestures on diatoms that you have zoomed into doesn't work yet.
When you zoom in you can still use the overlay, and view the original image, etc.
User had a hard time with gestures (on the tablet) but said that they would get used to the controls, Everything functions to what is needed. But it erases some smaller diatoms that they would need (by default). So I have lowered the default min blob width/height.
When you zoom in you can still use the overlay, and view the original image, etc.
User had a hard time with gestures (on the tablet) but said that they would get used to the controls, Everything functions to what is needed. But it erases some smaller diatoms that they would need (by default). So I have lowered the default min blob width/height.
Wednesday, June 22, 2011
WPF
Program save button removed - On measure, the program will automatically save a thumbnail of the diatom.
Perimeter works (Accuracy unknown) - Uses convex hull.
Erosion and Threshold functions work much better now. Still bugs with overlapping diatoms currently.
Tried a few different grayscaling algorithms, but none have worked. I tried using histograms (Red, Green, and Blue) to get which there were more of for the normal Grayscale. Still, doesn't function on one entire set of images.
Can now open images after another image has been opened. Program frees unused memory and clears garbage collection. But even with that it still has out of memory errors. There must be something that I am creating that isn't being disposed.
Idea for running on an entire folder of images.
If all the images are similar user can "calibrate" the program on the first image.
-set up the grayscale coefficients, and the threshold that gives the best result.
Then the program can run with this information, placing copies in a folder named after the original (-processed added to the end).
Then the user can do the calculations/actions required on each image. Because the original and new images are both accessible the overlay will still work (but not for Edge Detection, Fill Holes, Grayscale, etc.)
Perimeter works (Accuracy unknown) - Uses convex hull.
Erosion and Threshold functions work much better now. Still bugs with overlapping diatoms currently.
Tried a few different grayscaling algorithms, but none have worked. I tried using histograms (Red, Green, and Blue) to get which there were more of for the normal Grayscale. Still, doesn't function on one entire set of images.
Can now open images after another image has been opened. Program frees unused memory and clears garbage collection. But even with that it still has out of memory errors. There must be something that I am creating that isn't being disposed.
Idea for running on an entire folder of images.
If all the images are similar user can "calibrate" the program on the first image.
-set up the grayscale coefficients, and the threshold that gives the best result.
Then the program can run with this information, placing copies in a folder named after the original (-processed added to the end).
Then the user can do the calculations/actions required on each image. Because the original and new images are both accessible the overlay will still work (but not for Edge Detection, Fill Holes, Grayscale, etc.)
Tuesday, June 21, 2011
WPF
Got some more bugs now. I figured out why they are happening, but I'm not sure about how to go about fixing.
Threshold by selection is completed and functions (you draw a square - gesturewise)
Erode single diatoms functions (bug if blobs are overlapping)
Main bug is that when ever I clone an image (from bitmap source) it gives me an out of memory exception.
Bitmap Source --> Bitmap Image (Clone[Rectangle, Bitmap Image Pixel Format])
I was told this error in C# doesn't necessarily mean Out of Memory. But that you could have an unsupported pixel format (How to fix this I'm not sure)
Threshold by selection is completed and functions (you draw a square - gesturewise)
Erode single diatoms functions (bug if blobs are overlapping)
Main bug is that when ever I clone an image (from bitmap source) it gives me an out of memory exception.
Bitmap Source --> Bitmap Image (Clone[Rectangle, Bitmap Image Pixel Format])
I was told this error in C# doesn't necessarily mean Out of Memory. But that you could have an unsupported pixel format (How to fix this I'm not sure)
Monday, June 20, 2011
WPF
Some bugs have returned with implementations/changes.
Threshold by selection is partially implemented. This is done by drawing a square twice (after pressing the threshold button). It then runs the method to perform the threshold calculations.
Eroding is partially implemented as well done by a "down-up" gesture. Possibly implement dilate as the reverse (up-down gesture). I don't think there are any mask tools in AForge itself, so I'm looking at other ways to cut out the blob.
You can identify the species of the blobs on the screen, once identified the program saves the identification. You can quickly drop down to it instead of typing it in every time. (Right now this opens as a new window) I would like to get this so it has a small drop down menu at the mouse. I think that species and genera need to be separated, so I may have two separate lists.
Thinking of
List of Genera
Dictionary of <Genera, List>
Where the list will be the types of species each genera has.
Measurements (Area) works. Perimeter and others to be done up next.
Threshold by selection is partially implemented. This is done by drawing a square twice (after pressing the threshold button). It then runs the method to perform the threshold calculations.
Eroding is partially implemented as well done by a "down-up" gesture. Possibly implement dilate as the reverse (up-down gesture). I don't think there are any mask tools in AForge itself, so I'm looking at other ways to cut out the blob.
You can identify the species of the blobs on the screen, once identified the program saves the identification. You can quickly drop down to it instead of typing it in every time. (Right now this opens as a new window) I would like to get this so it has a small drop down menu at the mouse. I think that species and genera need to be separated, so I may have two separate lists.
Thinking of
List of Genera
Dictionary of <Genera, List>
Where the list will be the types of species each genera has.
Measurements (Area) works. Perimeter and others to be done up next.
Friday, June 17, 2011
WPF Bug fixes
Fixed all bugs that I could find in the program, memory seems good for the program.
Implemented importance gestures, the gesture (Sometimes) marks things not in the circle which I'm not sure why. As of now when you circle something it saves a single point (at the center of the circle) signifying importance. The program also draws a small marker on it.
With these points I plan on pulling out those blobs right away (Anything not near these points can be automatically considered garbage (?)
For delete gesture, it runs much faster as well (on large blobs) and doesn't crash if drawn across the entire blob (if the blob is large).
Implemented importance gestures, the gesture (Sometimes) marks things not in the circle which I'm not sure why. As of now when you circle something it saves a single point (at the center of the circle) signifying importance. The program also draws a small marker on it.
With these points I plan on pulling out those blobs right away (Anything not near these points can be automatically considered garbage (?)
For delete gesture, it runs much faster as well (on large blobs) and doesn't crash if drawn across the entire blob (if the blob is large).
Subscribe to:
Posts (Atom)