<?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 Re: Pixelation in the RGBToHSV color conversion function in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955266#M18998</link>
    <description>&lt;P&gt;IPL library not released for several years. You should know that there are University license for IPP, see IPP web page for more details&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;</description>
    <pubDate>Fri, 29 Dec 2006 23:22:40 GMT</pubDate>
    <dc:creator>Vladimir_Dudnik</dc:creator>
    <dc:date>2006-12-29T23:22:40Z</dc:date>
    <item>
      <title>Pixelation in the RGBToHSV color conversion function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955262#M18994</link>
      <description>&lt;DIV&gt;
&lt;DIV&gt;Hello again,&lt;/DIV&gt;
&lt;DIV&gt; I am experiencing pixelation when performing RGBToHSV color conversion. &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;A picture of this can be found here:&lt;/DIV&gt;
&lt;DIV&gt;Before the conversion process&lt;/DIV&gt;
&lt;DIV&gt;&lt;A href="http://www.andrew.cmu.edu/user/bmeeder/noConv.bmp" target="_blank"&gt;http://www.andrew.cmu.edu/user/bmeeder/noConv.bmp&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;After the conversion process&lt;/DIV&gt;
&lt;DIV&gt;&lt;A href="http://www.andrew.cmu.edu/user/bmeeder/conv.bmp" target="_blank"&gt;http://www.andrew.cmu.edu/user/bmeeder/conv.bmp&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Is there anything that I should know about this function that would affect how it is performing? The code that I am using is as follows:&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;void HSVThresholdGTVal_I(CBuffer *buf, RECTANGLE region, int val, int satisfyValue, int data)&lt;BR /&gt;{&lt;BR /&gt;#define iw buf-&amp;gt;w()&lt;BR /&gt;#define ih buf-&amp;gt;h()&lt;/DIV&gt;
&lt;DIV&gt;assert(region.top &amp;gt;= 0 &amp;amp;&amp;amp; region.top &amp;lt; region.bottom &amp;amp;&amp;amp; region.left &amp;gt;= 0 &amp;amp;&amp;amp; region.right &amp;gt; region.left);&lt;/DIV&gt;
&lt;DIV&gt;//code to figure out the region of interest that we are going to be dealing with&lt;BR /&gt;int roiW, roiH;&lt;BR /&gt;int offset;&lt;BR /&gt;int tempSB;&lt;BR /&gt;int paneSB;&lt;BR /&gt;&lt;BR /&gt;//the region of interest should be contained within the image&lt;BR /&gt;if(region.left &amp;lt; iw &amp;amp;&amp;amp; region.top &amp;lt; ih)&lt;BR /&gt;{&lt;BR /&gt;if(region.right &amp;lt;= iw)&lt;BR /&gt;roiW = region.right - region.left;&lt;BR /&gt;else&lt;BR /&gt;roiW = iw - region.left;&lt;BR /&gt;if(region.bottom &amp;lt;= ih)&lt;BR /&gt;roiH = region.bottom - region.top;&lt;BR /&gt;else &lt;BR /&gt;roiH = ih - region.top;&lt;/DIV&gt;
&lt;DIV&gt;IppiSize roi = {roiW, roiH};&lt;BR /&gt;offset = (region.top * buf-&amp;gt;StepSize() + region.left)*3;&lt;/DIV&gt;
&lt;DIV&gt;Ipp8u* temp = ippiMalloc_8u_C3(roiW, roiH, &amp;amp;tempSB);&lt;BR /&gt;Ipp8u* pane = ippiMalloc_8u_C1(roiW, roiH, &amp;amp;paneSB);&lt;/DIV&gt;
&lt;DIV&gt;ippiRGBToHSV_8u_C3R(buf-&amp;gt;Buffer() + offset, buf-&amp;gt;StepSize(), temp, tempSB, roi);&lt;BR /&gt;//copy the right part of the buffer over&lt;BR /&gt; //data specifies whether hue, sat. or value is copied&lt;/DIV&gt;
&lt;DIV&gt;ippiCopy_8u_C3C1R(temp + data, tempSB, pane, paneSB, roi);&lt;/DIV&gt;
&lt;DIV&gt;//clear the region that we are looking at&lt;/DIV&gt;
&lt;DIV&gt;ippiSet_8u_C3R(BLACK, buf-&amp;gt;Buffer() + offset, buf-&amp;gt;StepSize(), roi);&lt;/DIV&gt;
&lt;DIV&gt;ippiCopy_8u_C1C3R(pane, paneSB, buf-&amp;gt;Buffer() + offset, buf-&amp;gt;StepSize(), roi);&lt;BR /&gt;ippiCopy_8u_C1C3R(pane, paneSB, buf-&amp;gt;Buffer() + offset+1, buf-&amp;gt;StepSize(), roi);&lt;BR /&gt;ippiCopy_8u_C1C3R(pane, paneSB, buf-&amp;gt;Buffer() + offset+2, buf-&amp;gt;StepSize(), roi);&lt;BR /&gt;&lt;BR /&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;#undef iw&lt;BR /&gt;#undef ih&lt;BR /&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Many thanks,&lt;/DIV&gt;
&lt;DIV&gt;Brendan Meeder&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 04 Jun 2004 01:56:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955262#M18994</guid>
      <dc:creator>bmeeder</dc:creator>
      <dc:date>2004-06-04T01:56:34Z</dc:date>
    </item>
    <item>
      <title>Re: Pixelation in the RGBToHSV color conversion function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955263#M18995</link>
      <description>&lt;P&gt;Let me perhaps as a different question:&lt;/P&gt;
&lt;P&gt;Does RGBToHSV perform the function on every single pixel in the image, or does it work on groups of pixels to increase performance?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Many thanks,&lt;/P&gt;
&lt;P&gt;Brendan&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 09 Jun 2004 21:38:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955263#M18995</guid>
      <dc:creator>bmeeder</dc:creator>
      <dc:date>2004-06-09T21:38:25Z</dc:date>
    </item>
    <item>
      <title>Re: Pixelation in the RGBToHSV color conversion function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955264#M18996</link>
      <description>&lt;P&gt;Hi, ippiRGBToHSV work on pixel by pixel basis in reference implementation. Of course, it might use some optimization technics in optimized code. The pseudo code looks like that:&lt;/P&gt;
&lt;P&gt;// Reference:&lt;BR /&gt;// David F.Rogers&lt;BR /&gt;// Procedural elements for computer graphics&lt;BR /&gt;// 1985.pp.(401-403)&lt;BR /&gt;//&lt;BR /&gt;// H is the hue red at 0 degrees, which has range [0 .. 360 degrees],&lt;BR /&gt;// S is the saturation,&lt;BR /&gt;// V is the value &lt;BR /&gt;// The RGB to HSV conversion algorithm in pseudocode:&lt;BR /&gt;// Value:&lt;BR /&gt;// V = max(R,G,B);&lt;BR /&gt;// Saturation:&lt;BR /&gt;// temp = min(R,G,B);&lt;BR /&gt;// if V = 0 then // achromatics case&lt;BR /&gt;// S = 0&lt;BR /&gt;// H = 0&lt;BR /&gt;// else // chromatics case&lt;BR /&gt;// S = (V - temp)/V&lt;BR /&gt;// Hue:&lt;BR /&gt;// Cr = (V - R) / (V - temp)&lt;BR /&gt;// Cg = (V - G) / (V - temp)&lt;BR /&gt;// Cb = (V - B) / (V - temp)&lt;BR /&gt;// if R = V then H = Cb - Cg&lt;BR /&gt;// if G = V then H = 2 + Cr - Cb&lt;BR /&gt;// if B = V then H = 4 + Cg - Cr&lt;BR /&gt;// H = 60*H&lt;BR /&gt;// if H &amp;lt; 0 then H = H + 360&lt;BR /&gt;//&lt;BR /&gt;// The HSV to RGB conversion algorithm in pseudocode:&lt;BR /&gt;// if S = 0 then&lt;BR /&gt;// R = G = B = V&lt;BR /&gt;// else&lt;BR /&gt;// if H = 360 then&lt;BR /&gt;// H = 0 &lt;BR /&gt;// else&lt;BR /&gt;// H = H/60 &lt;BR /&gt;// I = floor(H)&lt;BR /&gt;// F = H - I;&lt;BR /&gt;// M = V * ( 1 - S);&lt;BR /&gt;// N = V * ( 1 - S * F);&lt;BR /&gt;// K = V * ( 1 - S * (1 - F));&lt;BR /&gt;// if(I == 0)then{ R = V;G = K;B = M;}&lt;BR /&gt;// if(I == 1)then{ R = N;G = V;B = M;}&lt;BR /&gt;// if(I == 2)then{ R = M;G = V;B = K;}&lt;BR /&gt;// if(I == 3)then{ R = M;G = N;B = V;}&lt;BR /&gt;// if(I == 4)then{ R = K;G = M;B = V;}&lt;BR /&gt;// if(I == 5)then{ R = V;G = M;B = N;}&lt;BR /&gt;//&lt;BR /&gt;// in the range [0..IPP_MAX_8u ] for the 8u depth,&lt;BR /&gt;// in the range [0..IPP_MAX_16u] for the 16u depth,&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 10 Jun 2004 15:22:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955264#M18996</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2004-06-10T15:22:46Z</dc:date>
    </item>
    <item>
      <title>Re: Pixelation in the RGBToHSV color conversion function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955265#M18997</link>
      <description>&lt;P&gt;Hello everybody,&lt;/P&gt;
&lt;P&gt;I am using IPL2.5 (ok ancient tool, but at the end we are a university;)) I want to ask a question about the rgb2HSV tool used by IPL. I used the one embedded in IPL, and compared it with theoretical values, however I observed differences between them. (The theoretical values I used were the one described in here, and the formula described in Gonzalez's book with arccos)Does anybody know what conversion is using IPL's RGB2HSV tool? &lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2006 21:47:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955265#M18997</guid>
      <dc:creator>ozgurovic</dc:creator>
      <dc:date>2006-12-25T21:47:03Z</dc:date>
    </item>
    <item>
      <title>Re: Pixelation in the RGBToHSV color conversion function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955266#M18998</link>
      <description>&lt;P&gt;IPL library not released for several years. You should know that there are University license for IPP, see IPP web page for more details&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;</description>
      <pubDate>Fri, 29 Dec 2006 23:22:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Pixelation-in-the-RGBToHSV-color-conversion-function/m-p/955266#M18998</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2006-12-29T23:22:40Z</dc:date>
    </item>
  </channel>
</rss>

