<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">I wrote the messages (below) a couple of months back and got no reply from the list. I did a bit of digging and found the following posts:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">https://lists.andrew.cmu.edu/pipermail/openslide-users/2015-April/001032.html<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB">“Note that OpenSlide's support for Ventana BIF is incomplete.  In
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB">particular, tile positioning is approximate, so you will see seams.”<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB">and<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB"><a href="https://github.com/openslide/openslide/issues/132">https://github.com/openslide/openslide/issues/132</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Which shows a similar (but possibly not identical) issue. The difference being my images seem to have every other column self consistent (i.e. even columns seem to line up to other even columns, and odd columns
 seem to line up to odd columns. It’s almost like a tile is missing in every other row (possibly related to the
</span><span style="color:#1F497D">TIFFReadDirectory: Warning, Unknown field with tag 34677 (0x8775) encountered message??).</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">There is some discussion there about needing a global optimisation of position. Optimisation is sort of my thing, so maybe I can help here? I’m assuming we’re talking about an optimisation based on the tile positions
 in the metadata, not on the image content. If so, some of the libraries suggested are a bit heavyweight I’d say (containing lots of methods for dealing with tiling based on image content). Also RANSAC was suggested (an optimisation approach that’s pretty easy
 to implement from scratch, but less desirable than a closed form least squares approach in terms of finding a global optima). I suspect this could be implemented either with no additional libraries or using something with a generic linear least squares solver
 like CLAPACK (BSD licenced). In fact if I interpret the following statement right there may be a REALLY simple solution:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal">“Instead, they store pairwise alignments (each tile's offset with respect to each of its neighbours), plus a confidence for each alignment. As a result, it's easy to align either rows or columns of tiles, but not both at once, since error
 accumulates in the other axis. To fix this, we need to handle tile positioning as a global optimization problem.” (<span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB"><a href="https://github.com/openslide/openslide/issues/132">https://github.com/openslide/openslide/issues/132</a>)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Consider the following approach:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Set tile 0,0 to position 0,0 (or other arbitrary position)<o:p></o:p></p>
<p class="MsoNormal">For each tile in row 0 set position based on tile to it’s left<o:p></o:p></p>
<p class="MsoNormal">For each tile in column 0 set position based on tile above<o:p></o:p></p>
<p class="MsoNormal">Then loop through remaining tiles in row then column order:<o:p></o:p></p>
<p class="MsoNormal">    Set position based on average of tile above and left (plus relevant offsets)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I may of course have misunderstood the nature of the offsets and I’m ignoring the confidences, but this approach is simple (closed form, requires no additional libraries) and minimises error locally. I can’t believe the Ventana viewer is
 doing some really complicated optimisation every time you open an image.<o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Derek<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">P.S. I only just discovered the GIT issue tracker. Should this discussion be there?<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="color:#1F497D"><o:p> </o:p></span></a></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB"> openslide-users
 [mailto:openslide-users-bounces+d.r.magee=leeds.ac.uk@lists.andrew.cmu.edu] <b>On Behalf Of
</b>Derek Magee<br>
<b>Sent:</b> 29 March 2017 00:36<br>
<b>To:</b> openslide-users@lists.andrew.cmu.edu<br>
<b>Subject:</b> RE: Striping error for Roche/Ventana .bif files<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">P.S. Should have said, get the error:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">TIFFReadDirectory: Warning, Unknown field with tag 34677 (0x8775) encountered.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">D.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB"> openslide-users
 [</span><a href="mailto:openslide-users-bounces+d.r.magee=leeds.ac.uk@lists.andrew.cmu.edu"><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB">mailto:openslide-users-bounces+d.r.magee=leeds.ac.uk@lists.andrew.cmu.edu</span></a><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB">]
<b>On Behalf Of </b>Derek Magee<br>
<b>Sent:</b> 29 March 2017 11:43<br>
<b>To:</b> </span><a href="mailto:openslide-users@lists.andrew.cmu.edu"><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB">openslide-users@lists.andrew.cmu.edu</span></a><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB"><br>
<b>Subject:</b> Striping error for Roche/Ventana .bif files<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve got some Roche-Ventana .bif files and there is some sort of striping artefact present at all magnifications. It’s like there are vertical stripes of around 1500-1600 pixels that are vertically offset from each other. See:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><a href="https://drive.google.com/open?id=0B4dreadgSUU4X3QyQm16T3dmcjQ">https://drive.google.com/open?id=0B4dreadgSUU4X3QyQm16T3dmcjQ</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Apparently they look ok on the Roche viewer. I know very little about the scanner used. Happy to share images with developers, but rather not put link on a public forum.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’m using openslide windows binary release openslide-win64-20160717, which I think is the latest.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Derek<o:p></o:p></p>
</div>
</body>
</html>