<div dir="ltr"><div><div><div><div><div><div><div>@ Samuel,<br><br></div>thanks for the link.<br><br></div>This is a nice function and it is doing what I am searching for.<br><br></div>My example is rather slow though and I don't think that it is handy if one deals with big 2D Arrays.<br><br></div>For a 640 x 512 array it took me 55 seconds to get the mask.<br><br></div>guess the two for loops are the reason.<br><br></div></div><div><div><pre style="font-family:Monospaced;font-style:normal"><span style="color:rgb(50,185,185)">clc</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(174,92,176);text-decoration:underline">tic</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span>

<span style="color:rgb(0,0,0)">img</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(50,185,185)">rand</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">512</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">614</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">.*</span><span style="color:rgb(188,143,143)">255</span><span style="color:rgb(0,0,0)">;</span>

<span style="color:rgb(0,0,0)">rows</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(50,185,185)">size</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">img</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(188,143,143)">r</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">cols</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(50,185,185)">size</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">img</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(188,143,143)">c</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>

<span style="color:rgb(0,0,0)">mask</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(50,185,185)">zeros</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">img</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">xpol</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">ypol</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">ibutton</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">3</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">nr_points</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">0</span><span style="color:rgb(0,0,0)">;</span>

<span style="color:rgb(0,0,0)">f</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(50,185,185)">figure</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">f</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">color_map</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(174,92,176);text-decoration:underline">graycolormap</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">255</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(50,185,185)">Matplot</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">img</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>

<span style="color:rgb(160,32,240)">while</span> <span style="color:rgb(0,0,0)">ibutton</span> <span style="color:rgb(92,92,92)">==</span> <span style="color:rgb(188,143,143)">3</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(0,0,0)">ibutton</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">xcoord</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">ycoord</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(50,185,185)">xclick</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(160,32,240)">if</span> <span style="color:rgb(0,0,0)">ibutton</span> <span style="color:rgb(92,92,92)">==</span><span style="color:rgb(188,143,143)">3</span>
        <span style="color:rgb(0,0,0)">nr_points</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">nr_points</span> <span style="color:rgb(92,92,92)">+</span> <span style="color:rgb(188,143,143)">1</span><span style="color:rgb(0,0,0)">;</span>
        <span style="color:rgb(174,92,176);text-decoration:underline">plot</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">xcoord</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">ycoord</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(188,143,143)">o</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
        <span style="color:rgb(0,0,0)">xpol</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">nr_points</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">xcoord</span><span style="color:rgb(0,0,0)">;</span>
        <span style="color:rgb(0,0,0)">ypol</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">nr_points</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">rows</span><span style="color:rgb(92,92,92)">-</span><span style="color:rgb(0,0,0)">ycoord</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(160,32,240)">end</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">end</span>
<span style="color:rgb(50,185,185)">delete</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(174,92,176);text-decoration:underline">gcf</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>

<span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">i</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">1</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">rows</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">j</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">1</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">cols</span>
        <span style="color:rgb(0,0,0)">inside</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">point_in_polygon</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">xpol</span><span style="color:rgb(0,0,0)">,</span> <span style="color:rgb(0,0,0)">ypol</span><span style="color:rgb(0,0,0)">,</span> <span style="color:rgb(0,0,0)">j</span><span style="color:rgb(0,0,0)">,</span> <span style="color:rgb(0,0,0)">i</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(0,0,0)">;</span>
        <span style="color:rgb(160,32,240)">if</span> <span style="color:rgb(0,0,0)">inside</span> <span style="color:rgb(92,92,92)">==</span> <span style="color:rgb(218,112,214)">%t</span><span style="color:rgb(0,0,0)">;</span>
            <span style="color:rgb(0,0,0)">mask</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">j</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">1</span><span style="color:rgb(0,0,0)">;</span>
        <span style="color:rgb(160,32,240)">end</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(160,32,240)">end</span>
<span style="color:rgb(160,32,240)">end</span>

<span style="color:rgb(0,0,0)">f</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(50,185,185)">figure</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">f</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">color_map</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(174,92,176);text-decoration:underline">graycolormap</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">255</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(50,185,185)">Matplot</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">img</span><span style="color:rgb(92,92,92)">.*</span><span style="color:rgb(0,0,0)">mask</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(174,92,176);text-decoration:underline">plot</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">xpol</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">rows</span><span style="color:rgb(92,92,92)">-</span><span style="color:rgb(0,0,0)">ypol</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(188,143,143)">o</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>

<span style="color:rgb(0,0,0)">t</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(174,92,176);text-decoration:underline">toc</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span>
<span style="color:rgb(50,185,185)">disp</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">t</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span></pre><br><br><br><br><div><div><br><div><br></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-03-12 1:02 GMT+01:00 Samuel Gougeon <span dir="ltr"><<a href="mailto:sgougeon@free.fr" target="_blank">sgougeon@free.fr</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><span class="">
    <div>Le 12/03/2016 00:42, Samuel Gougeon a
      écrit :<br>
    </div>
    </span><blockquote type="cite">
      
      <div>.../...
        <span class=""><p>This ends the selection part.<br>
        </p>
        <p>After that, identifying points of your grayplot area being in
          the curve may be done with<br>
          point_in_polygon: <a href="https://fileexchange.scilab.org/toolboxes/121000" target="_blank">https://fileexchange.scilab.org/toolboxes/121000</a><br>
          However, this script is not vectorized. So, if your full area
          has big sizes, it may takes a while.<br>
        </p>
        <p>I would not guaranty that point_in_polygon() can be
          vectorized, but we may try to.<br>
          It does not look too bad, at first sight :)<br>
        </p>
      </span></div>
    </blockquote>
    .<br>
    Actually, its vectorization is straightforward (to process a matrix
    of points without explicit "for" loop, <br>
    instead of a unique point). But the script has other problems.<br>
    Special cases (horizontal segments, points on segments, etc) are not
    really handled.<br>
    Nevertheless, you may give it a try as is. Or improve it for special
    cases.<span class="HOEnZb"><font color="#888888"><br>
    <br>
    Samuel<br>
    <br>
  </font></span></div>

<br>_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@lists.scilab.org">users@lists.scilab.org</a><br>
<a href="http://lists.scilab.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.scilab.org/mailman/listinfo/users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">There we have the salad.</div>
</div>