<p>I do, or can at least make one. I am on vacation until 2nd Jan, but then I can supply one.</p>
<div class="gmail_quote">On Dec 20, 2012 5:06 PM, &quot;Bill Lorensen&quot; &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think your gerrit patch goes too far. pHYs measure pixel size/aspect<br>
ration. sCAL is the proper parameter, but as you pointed out, ITK is<br>
not writing out a correct sCAL unit type. Since ITK does not have a<br>
concept of unit, I think we just need to repair the output image to<br>
specify a valid unit type, which probably should be meters rather than<br>
radians.<br>
<br>
I&#39;ll modify the patch if you don&#39;t mind.<br>
<br>
Also, would you have a small png file that has a valid sCAL component?<br>
<br>
Bill<br>
On Tue, Dec 11, 2012 at 10:53 AM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt; wrote:<br>
&gt; It looks like Jim Miller introduced invalid unit usage in fix<br>
&gt; 15b9450b61249261d098506d9ff878744768025a from 2003-02-19.<br>
&gt;<br>
&gt; PNG spec defines meters and radians as allowed units in sCAL chunk, vs<br>
&gt; unknown and meters in pHYs chunk. Hence the warning I have been seeing with<br>
&gt; OpenCV and NConvert.<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Dec 11, 2012 at 4:03 PM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Current behavior is to ignore units, but it does not handle unit<br>
&gt;&gt; completely correctly (only handles the extension sCAL for metadata, but not<br>
&gt;&gt; the standard pHYs metadata).<br>
&gt;&gt;<br>
&gt;&gt; Extending current way would transform 2000 pixels/meter (pixel size 0.5<br>
&gt;&gt; mm) into spacing of 0.0005.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Dec 11, 2012 at 3:50 PM, Bradley Lowekamp &lt;<a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Having very small or very large spacing can have big impact on the<br>
&gt;&gt;&gt; numerical stability of derivatives and evolving differential equations such<br>
&gt;&gt;&gt; as level-sets or diffusion.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I think the least surprising thing to the users would be to just keep it<br>
&gt;&gt;&gt; the same as to avoid adverse numerical effects. Also this would not change<br>
&gt;&gt;&gt; the current behavior, correct?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Brad<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Dec 11, 2012, at 9:42 AM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; PNG has three following units: meters, radians, and unknown. Currently<br>
&gt;&gt;&gt; PNG reader ignores unit, and writes unknown units.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I guess I Should keep writing unknown units. But when reading PNG with<br>
&gt;&gt;&gt; meter units (eg. 2000 pixels/meter), should I transform it into pixel<br>
&gt;&gt;&gt; spacing 0.5 (assuming customary millimeter) or into 0.0005?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Dec 11, 2012 at 3:36 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; No units. ITK considers units an application thing. You can add a unit<br>
&gt;&gt;&gt;&gt; type if the format supports it. It could help applications. For<br>
&gt;&gt;&gt;&gt; example, most medical images use mm&#39;s.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Tue, Dec 11, 2012 at 8:25 AM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt; Is ITK still assuming no units, or millimeters are units for pixel<br>
&gt;&gt;&gt;&gt; &gt; spacing?<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; On Mon, Dec 10, 2012 at 5:25 PM, Bill Lorensen<br>
&gt;&gt;&gt;&gt; &gt; &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; If you submit a gerrit patch, I&#39;ll write or modify a test.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; How will we know if the fix works unless we test it? How will we know<br>
&gt;&gt;&gt;&gt; &gt;&gt; if someone reintroduces the bug if we don&#39;t test it?<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; On Mon, Dec 10, 2012 at 10:41 AM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; But this would be a bug fix, not a patch introducing new features.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; This<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; should already be working, and ideally having a test.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; I know that many bugs don&#39;t get fixed, because they are not<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; important<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; enough<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; and there is not enough people working on ITK. However a<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; requirement to<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; write a 20-30 line test for a few lines of fixed code is a great<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; deterrence<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; for me to contribute bug fixes (such as this one).<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; On Mon, Dec 10, 2012 at 4:26 PM, Bill Lorensen<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; Looks like ti should be fixed. But if you submit a gerrit patch,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; sure oyu also supply a test or modify an existing test.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; The lack of a test is why your previous gerrit patch has not been<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; approved.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; Bill<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; On Mon, Dec 10, 2012 at 8:35 AM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Hi everyone,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; I have noticed that ImageFileWriter, when writing png format,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; writes<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; wrong<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; pixel size information. It is not completely wrong, but it is<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; not in<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; accordance with png specification.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; When reading such files with OpenCV, I get following warning:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; libpng warning: Invalid sCAL ignored: invalid unit<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; This is not just annoying and clutter-causing, but displaying it<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; for<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; every<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; single image slows down my OpenCV processing.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; I used XnView to batch-edit the extracted slices and set some<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; scaling<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; which<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; adheres to the specification to get rid of this warning.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Now the question: should I correct this bug, or submit a bug<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; report?<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; My<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; last<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; bug-fixing ended non-gloriously :(<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _____________________________________<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; Unpaid intern in BillsBasement at noware dot com<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt;&gt; &gt;&gt; Unpaid intern in BillsBasement at noware dot com<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; Unpaid intern in BillsBasement at noware dot com<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _____________________________________<br>
&gt;&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt;&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt;&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Unpaid intern in BillsBasement at noware dot com<br>
</blockquote></div>