<?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: Dual origins in rotate in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945644#M18119</link>
    <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;
&lt;P&gt;ippiRotateCenter uses a rotation centre for the source image and mapped source center to the point in destination image with the same coordinates. If you want to place the result at an arbitary point on the destination you should use ippiRotate function with required xShift and yShift parameters for example you can use the follwing code&lt;/P&gt;
&lt;P&gt;xCenterSrc = ...;&lt;BR /&gt;yCenterSrc = ...;&lt;BR /&gt;angle = ...;&lt;BR /&gt;xCenterDst = ...;&lt;BR /&gt;yCenterDst = ...;&lt;/P&gt;
&lt;P&gt;ippiGetRotateShift(xCenterSrc, yCenterSrc, angle, &amp;amp;xShift, &amp;amp;yShift);&lt;/P&gt;
&lt;P&gt;xShift += xCenterDst - xCenterSrc;&lt;BR /&gt;yShift += yCenterDst - yCenterSrc;&lt;/P&gt;
&lt;P&gt;ippiRotate(..., angle, xShift, yShift, interpolate);&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description>
    <pubDate>Tue, 03 Aug 2004 15:09:49 GMT</pubDate>
    <dc:creator>Vladimir_Dudnik</dc:creator>
    <dc:date>2004-08-03T15:09:49Z</dc:date>
    <item>
      <title>Dual origins in rotate</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945643#M18118</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Hi&lt;/DIV&gt;
&lt;DIV&gt;I see that ippiRotateCentre allows me to set a rotation centre for the source. &lt;/DIV&gt;
&lt;DIV&gt;I assume that this rotation centre point will will be mapped to the 0,0 point on the destination.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;But I want to place the result at an arbitary point on the destination, and as far as I can tell there is no way of combining the two origins "in to one" so as to use the function? Am I right, is there an alternative?Or is this an embarrissingconsequence of coming back from a two week holiday and not yet having re-engaged the 2d equation solving part of my brain? [If so, pls advise required algebra.]&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thanks&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Dave Turnbull&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 02 Aug 2004 23:06:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945643#M18118</guid>
      <dc:creator>Deleted_U_Intel</dc:creator>
      <dc:date>2004-08-02T23:06:09Z</dc:date>
    </item>
    <item>
      <title>Re: Dual origins in rotate</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945644#M18119</link>
      <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;
&lt;P&gt;ippiRotateCenter uses a rotation centre for the source image and mapped source center to the point in destination image with the same coordinates. If you want to place the result at an arbitary point on the destination you should use ippiRotate function with required xShift and yShift parameters for example you can use the follwing code&lt;/P&gt;
&lt;P&gt;xCenterSrc = ...;&lt;BR /&gt;yCenterSrc = ...;&lt;BR /&gt;angle = ...;&lt;BR /&gt;xCenterDst = ...;&lt;BR /&gt;yCenterDst = ...;&lt;/P&gt;
&lt;P&gt;ippiGetRotateShift(xCenterSrc, yCenterSrc, angle, &amp;amp;xShift, &amp;amp;yShift);&lt;/P&gt;
&lt;P&gt;xShift += xCenterDst - xCenterSrc;&lt;BR /&gt;yShift += yCenterDst - yCenterSrc;&lt;/P&gt;
&lt;P&gt;ippiRotate(..., angle, xShift, yShift, interpolate);&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 03 Aug 2004 15:09:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945644#M18119</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2004-08-03T15:09:49Z</dc:date>
    </item>
    <item>
      <title>Re: Dual origins in rotate</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945645#M18120</link>
      <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;there is answers from our expert:&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;
&lt;P&gt;1) yes, if You mean matrix of kind &lt;/P&gt;
&lt;P&gt;a00 a01 a02&lt;BR /&gt;a10 a11 a12&lt;BR /&gt;0 0 1&lt;/P&gt;
&lt;P&gt;2) yes, ippiWarpAffine is quick as Rotate (and in current implementation ippiRotate uses it)&lt;/P&gt;
&lt;P&gt;3) there is ippiWarpAffineBack function in IPP which perform tramsformation with inverse matrix&lt;/P&gt;
&lt;P&gt;4) ippiGetAffineTransform, ippiGetAffineTransform, ippiWarpAffine and ippiWarpAffineBack deal with matrix&lt;/P&gt;
&lt;P&gt;X' = coeffs[0][0] * X + coeffs[0][1] * Y + coeffs[0][2]&lt;BR /&gt;Y' = coeffs[1][0] * X + coeffs[1][1] * Y + coeffs[1][2]&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 19 Aug 2004 14:40:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Dual-origins-in-rotate/m-p/945645#M18120</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2004-08-19T14:40:52Z</dc:date>
    </item>
  </channel>
</rss>

