ID 1111, Homework 3: Proof is correct. Code is ok and delivers the requested results. There are little accumulations of bifurcations, which are not visible in the original image. They could have been handled with: - different thresholding techniques - morphological pre-processing - maximum supression techniques Score: 10 points. ---------------------------------- ID 2013, Homework 3: Proof is correct. Code is ok, but there are lots of bifurcations shown which are not present in the original image: they are due to little holes (noise) in the original image. These holes change the topology of the fingerprint, the thinning as well as the skeletonization react to it. It would have been necessary to use a simple closing, instead of the 'bwfill' command. Score: 9 points ----------------------------------- ID 1683, Homework 3: Proof is correct (hard copy). The result of the code is interesting and should have been commented: it shows hundreds of bifurcations where there are none. The reason is the FIRST conversion of the input: using the ~sign (WHY???) to convert the image to a binary color image creates an entirely decomposed, non connected image. There's no algorithm in the world to fix that... hence: working on such an input does not make any sense. The templates and the bwhitmiss is correct. There is something important, yet basic to learn here: even if the final steps seem correct, the desired result will never be delivered if the input is wrong. Or simply: ALWAYS check the input to EVERY step of your code. Also: the result is obviously not correct. It is necessary to write a comment about it, and to reason about the possible errors. As researchers, we will always have to deal with negative results. They can be turned into positive results just by analyzing them: if we learn from an experiment that failed, it was a success. But again: check your inputs ! score: 8 points. ------------------------------------ ID 1674, Homework 3: Proof is correct. Code is ok, but there are lots of bifurcations shown which are not present in the original image: they are due to little holes (noise) in the original image. These holes change the topology of the fingerprint, the thinning as well as the skeletonization react to it. It would have been necessary to use a simple closing, instead of the 'bwfill' command. Thanks for the thoughts and comments! Score: 9 points -------------------------------------- ID 4286, Homework 3: Proof is correct. Masks of the code are ok, thanks for showing them in your report, too. The fingerprint you used is not simple: it is quite 'thick' in the center, hence the ridges are bridged. There is no easy way out of this, line follow algorithms which would detect strong changes in curvature come to mind -- but that's not doable in such an assignment. The preprocessing is a bit too simple: just thinning can lead to trouble, since it keeps the original topology of the input, i.e. holes (due to noise) will be shown as bifurcations. In your image this didn't show up massively, but it should have been handled anyway: just some opening / closing as preprocessing is always a good idea when working with images like these. score: 9 points (1 point off for too simple pre-processing) -------------------------------------- ID 5871, Homework 3: Proof is missing: -3 points. Code: The result of the code is interesting and should have been commented: it shows hundreds of bifurcations where there are none. The reason is a wrong threshold in the very beginning, creating a disconnected input image. Working on such an input does not make too much sense. You are trying to fix it using some opening/closing, which is a useful attempt. But a better threshold (just handpicked!) would have been necessary. The templates and the bwhitmiss is correct. There is something important, yet basic to learn here: even if the final steps seem correct, the desired result will never be delivered if the input is wrong. Or simply: ALWAYS check the input to EVERY step of your code. Also: the result is obviously not correct. It is necessary to write a comment about it, and to reason about the possible errors. As researchers, we will always have to deal with negative results. They can be turned into positive results just by analyzing them: if we learn from an experiment that failed, it was a success. But again: check your inputs ! score: 6 points (-3 for proof, -1 for code (-2 for wrong result, +1 for trying to fix it)) -------------------------------------- ID 1424, Homework 3: Proof is correct. Code: Very nice report, and perfect result. It's a bit critical that you do thinning without pre-processing, which usually would lead to -1 points in the score. But due to the perfect result and report, that the score should be 10. score 10 --------------------------------------- ID 3286, Homework 3: proof is correct. The result is interesting: there are a lot of false positives. The reason is the FIRST conversion of the input, which yields a strongly disconnected set of foreground points. There's no algorithm in the world to fix that... hence: working on such an input does not make sense. The templates and the bwhitmiss is correct. There is something important, yet basic to learn here: even if the final steps seem correct, the desired result will never be delivered if the input is wrong. Or simply: ALWAYS check the input to EVERY step of your code. Also: the result is obviously not correct. It is necessary to write a comment about it, and to reason about the possible errors. As researchers, we will always have to deal with negative results. They can be turned into positive results just by analyzing them: if we learn from an experiment that failed, it was a success. But again: check your inputs ! Score 8 points