<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Thank you Igor. in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181050#M27190</link>
    <description>&lt;P&gt;Thank you Igor.&lt;/P&gt;

&lt;P&gt;Yes I found it : &lt;A href="https://www.mathworks.com/help/images/ref/wiener2.html#f6-72193" target="_blank"&gt;https://www.mathworks.com/help/images/ref/wiener2.html#f6-72193&lt;/A&gt;&lt;BR /&gt;
	Only small formal note to formula: in numerator is "sigma" with "i,j" indexes, but in denominator is only "sigma" witout indexes, which is bit confusing as far as they both refer to same value.&lt;/P&gt;

&lt;P&gt;Dividing by zero can occurs in any uniform region which is same size as kernel, where his variation is equal zero, does not ? As "sigma" in denominator represents local variance and local variance can be zero not only for uniform image, but also for image where uniform regions exists ... or I miss something ?&lt;/P&gt;</description>
    <pubDate>Tue, 12 Sep 2017 12:09:00 GMT</pubDate>
    <dc:creator>Ladislav_K_</dc:creator>
    <dc:date>2017-09-12T12:09:00Z</dc:date>
    <item>
      <title>FilterWiener documentation</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181048#M27188</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I am refering to &lt;A href="https://software.intel.com/en-us/ipp-dev-reference-filterwiener" target="_blank"&gt;https://software.intel.com/en-us/ipp-dev-reference-filterwiener&lt;/A&gt; where is described how Wiener Filter is computed using local mean and variance.&lt;BR /&gt;
	I wonder if final computation: Y(i,j) = m(i,j) + (s(i,j)^2-v) / s(i,j)^2 * [X(i,j) - m(i,j)] is there correctly described ?&lt;BR /&gt;
	And what happens if s(i,j) = 0 as there is division by zero ?&lt;/P&gt;

&lt;P&gt;Because when I try do it in myself I get other results as when I call this function.&lt;BR /&gt;
	It seems me, that there is used: Y(i,j) = m(i,j) + s(i,j)^2 / (s(i,j)^2 + v) * [X(i,j) - m(i,j)]&lt;/P&gt;

&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2017 10:07:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181048#M27188</guid>
      <dc:creator>Ladislav_K_</dc:creator>
      <dc:date>2017-09-12T10:07:40Z</dc:date>
    </item>
    <item>
      <title>Hi Ladislav,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181049#M27189</link>
      <description>&lt;P&gt;Hi Ladislav,&lt;/P&gt;

&lt;P&gt;IPP implementation&amp;nbsp;is identical&amp;nbsp;to Matlab one - you can check formulas in Matlab "help" available online. As regarding division by zero - it can .occur only in case if all the image is filled with some const and auto-detected noise is less than IPP_EPS_32F - this "bad" case is checked internally and if true - filtering is substituted with the simple copy function.&lt;/P&gt;

&lt;P&gt;regards, Igor&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2017 11:35:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181049#M27189</guid>
      <dc:creator>Igor_A_Intel</dc:creator>
      <dc:date>2017-09-12T11:35:04Z</dc:date>
    </item>
    <item>
      <title>Thank you Igor.</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181050#M27190</link>
      <description>&lt;P&gt;Thank you Igor.&lt;/P&gt;

&lt;P&gt;Yes I found it : &lt;A href="https://www.mathworks.com/help/images/ref/wiener2.html#f6-72193" target="_blank"&gt;https://www.mathworks.com/help/images/ref/wiener2.html#f6-72193&lt;/A&gt;&lt;BR /&gt;
	Only small formal note to formula: in numerator is "sigma" with "i,j" indexes, but in denominator is only "sigma" witout indexes, which is bit confusing as far as they both refer to same value.&lt;/P&gt;

&lt;P&gt;Dividing by zero can occurs in any uniform region which is same size as kernel, where his variation is equal zero, does not ? As "sigma" in denominator represents local variance and local variance can be zero not only for uniform image, but also for image where uniform regions exists ... or I miss something ?&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2017 12:09:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181050#M27190</guid>
      <dc:creator>Ladislav_K_</dc:creator>
      <dc:date>2017-09-12T12:09:00Z</dc:date>
    </item>
    <item>
      <title>"Dividing by zero can occurs</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181051#M27191</link>
      <description>&lt;P&gt;"Dividing by zero can occurs in any uniform region which is same size as kernel, where his variation is equal zero, does not ?" - Yes, may be, will check on some synthetic image, but haven't ever faced with such case on the real images. Currently IPP doesn't perform such check - below is a fragment of px code:&lt;/P&gt;

&lt;P&gt;#define genWiener_C1( flvr, iT )\&lt;BR /&gt;
	static void owniWiener_##flvr##_C1R( iT* pS1, Ipp32f* pM, Ipp32f* pV,\&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iT* pD, Ipp32f shum, int width )\&lt;BR /&gt;
	{\&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; int w;\&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; for( w = 0; w &amp;lt; width; w++ ){\&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pD&lt;W&gt; = (iT)( pM&lt;W&gt; + (( pV&lt;W&gt; - shum ) / pV&lt;W&gt; ) * ( pS1&lt;W&gt; - pM&lt;W&gt; ));\&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }\&lt;BR /&gt;
	}&lt;/W&gt;&lt;/W&gt;&lt;/W&gt;&lt;/W&gt;&lt;/W&gt;&lt;/W&gt;&lt;/P&gt;

&lt;P&gt;genWiener_C1( 8u32f, Ipp8u )&lt;BR /&gt;
	genWiener_C1( 16s32f, Ipp16s )&lt;BR /&gt;
	genWiener_C1( 32f, Ipp32f )&lt;/P&gt;

&lt;P&gt;regards, Igor&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2017 13:02:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/FilterWiener-documentation/m-p/1181051#M27191</guid>
      <dc:creator>Igor_A_Intel</dc:creator>
      <dc:date>2017-09-12T13:02:45Z</dc:date>
    </item>
  </channel>
</rss>

