<?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 ippiCanny Example/help? in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793576#M2602</link>
    <description>Hi androoy,&lt;BR /&gt;&lt;BR /&gt;The code looks no problem. but from the result image,it looksstill some errors in data access. &lt;BR /&gt;&lt;BR /&gt;1)For example, if your prc imageis aRGB 3 channal image with 8u data type, thenthe assignmentmay not correct.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV id="_mcePaste"&gt;for(int i=0; i &amp;lt; (width*height); i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;imgCache&lt;I&gt; = (ptr&lt;I&gt;/16);&lt;/I&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;}. &lt;/DIV&gt;what data format isin ptr? &lt;BR /&gt;&lt;BR /&gt;2)The edge image is 8u 1 channale image with width=1024, hight=1392, but the shown edges image have about width 500, is there any problem in showing the image? &lt;BR /&gt;&lt;BR /&gt;Additionally,it is recommended to use imgStep8, imgStep16 other thanthe width*sizeof(Ipp8u) as widthStep. Luckily, you have 1024 as width, they are same.If other value like 1000, then imgStep8&lt;STRONG&gt;!=&lt;/STRONG&gt;1000*sizeof(Ipp8u). &lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Ying</description>
    <pubDate>Mon, 11 Jul 2011 03:35:12 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2011-07-11T03:35:12Z</dc:date>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793573#M2599</link>
      <description>I am trying to get the canny edge detector to work on an image that I have initialized. I tried running the example code under the documentation for the edge detector, but I my resulting image/array is always completely full of the exact same value, "205".&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Here is the code, I believe my problem may be related to the ippMsk, dx, dy, or buffer. I'm not exactly sure what the ippmsk, dx, and dy are doing - any explanation for those would be helpful as well. Again, this code is almost completely from the example in the documentation.&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;int main(array&lt;:STRING&gt; ^args)&lt;/:STRING&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	int size1;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	int size2;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ptr1 = new Ipp16u[1392*1024];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ptr2 = new Ipp8u[1392*1024];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp8u *buffer;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp16s *dx, *dy;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	dx = new Ipp16s[1392*1024];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	dy = new Ipp16s[1392*1024];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	readVals();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	testMethod();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	sts = ippiFilterSobelHorizGetBufferSize_8u16s_C1R(imgSize, ippMskSize3x3, &amp;amp;size1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	sts = ippiFilterSobelHorizGetBufferSize_8u16s_C1R(imgSize, ippMskSize3x3, &amp;amp;size2);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	if(size1 &lt;SIZE2&gt;&lt;DIV id="_mcePaste"&gt;		size1 = size2;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ippiCannyGetSize(imgSize, &amp;amp;size2);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	if(size1 &amp;lt; size2) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		size1=size2;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	buffer = new Ipp8u[size1];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	sts = ippiFilterSobelNegVertBorder_8u16s_C1R (tempPtr, 1, dx, 2, imgSize, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	sts = ippiFilterSobelHorizBorder_8u16s_C1R(tempPtr, 1, dy, 2, imgSize, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	sts = ippiCanny_16s8u_C1R(dx, 2, dy, 2, ptr2, 1, imgSize, 10, 100, buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	//ippsFree(buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ofstream myfile;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	myfile.open("C://Users//Yuja//Documents//MATLAB//outputautoreg.raw", ios::out | ios::binary);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	for(int i=0; i&amp;lt; 1024*1392; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;			myfile.write((char*)&amp;amp;ptr2&lt;I&gt;, sizeof(char));&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	return 0;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;}&lt;/DIV&gt;int main(array&lt;:STRING&gt; ^args){&lt;BR /&gt;	int size1;	int size2;&lt;BR /&gt;	ptr1 = new Ipp16u[1392*1024];	ptr2 = new Ipp8u[1392*1024];&lt;BR /&gt;	Ipp8u *buffer;&lt;BR /&gt;	Ipp16s *dx, *dy;&lt;BR /&gt;	dx = new Ipp16s[1392*1024];	dy = new Ipp16s[1392*1024];&lt;BR /&gt;	readVals();	testMethod();		sts = ippiFilterSobelHorizGetBufferSize_8u16s_C1R(imgSize, ippMskSize3x3, &amp;amp;size1);	sts = ippiFilterSobelHorizGetBufferSize_8u16s_C1R(imgSize, ippMskSize3x3, &amp;amp;size2);&lt;BR /&gt;&lt;BR /&gt;	if(size1 &lt;SIZE2&gt;&lt;/SIZE2&gt;	ippiCannyGetSize(imgSize, &amp;amp;size2);&lt;BR /&gt;	if(size1 &amp;lt; size2) {		size1=size2;	}&lt;BR /&gt;	buffer = new Ipp8u[size1];&lt;BR /&gt;	sts = ippiFilterSobelNegVertBorder_8u16s_C1R (tempPtr, 1, dx, 2, imgSize, ippMskSize3x3, ippBorderRepl, 0, buffer);	sts = ippiFilterSobelHorizBorder_8u16s_C1R(tempPtr, 1, dy, 2, imgSize, ippMskSize3x3, ippBorderRepl, 0, buffer);	sts = ippiCanny_16s8u_C1R(dx, 2, dy, 2, ptr2, 1, imgSize, 10, 100, buffer);		//ippsFree(buffer);&lt;BR /&gt;	ofstream myfile;	myfile.open("C://Users//Yuja//Documents//MATLAB//outputautoreg.raw", ios::out | ios::binary);&lt;BR /&gt;	for(int i=0; i&amp;lt; 1024*1392; i++) {			myfile.write((char*)&amp;amp;ptr2&lt;I&gt;, sizeof(char));	}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;	return 0;&lt;BR /&gt;}&lt;/I&gt;&lt;/:STRING&gt;&lt;/SIZE2&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 06 Jul 2011 17:21:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793573#M2599</guid>
      <dc:creator>androoy</dc:creator>
      <dc:date>2011-07-06T17:21:34Z</dc:date>
    </item>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793574#M2600</link>
      <description>Hello Androoy,&lt;BR /&gt;&lt;BR /&gt;The problem looks be the parameter: widthSteps.&lt;BR /&gt;widthStep: Stride or step in bytes through theimage.it isthe width ofimagerow, but in bytes.&lt;BR /&gt;&lt;BR /&gt;So you may change all of 1 or 2 inabove code to imgSize.width*sizeof(Ipp8u) or dy.width*sizeof(Ipp16s).&lt;BR /&gt;or other strides,depends on your array memory layout and datatype.&lt;BR /&gt;&lt;BR /&gt;Best Wishes, &lt;BR /&gt;Ying H.</description>
      <pubDate>Fri, 08 Jul 2011 08:31:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793574#M2600</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2011-07-08T08:31:08Z</dc:date>
    </item>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793575#M2601</link>
      <description>Hi Ying,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks you for the help! That was exactly what the problem was. I thought the "step" size was per cell bytes.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I'm running into a new problem now - the edges on my image are not detected properly.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;My image ends up skewed and broken up into recognizable parts. Here is the code (basically just following the demo procedure as shown in the documentation under Canny) :&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;Ipp8u * doCanny(Ipp16u* ptr) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	int width=1024;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	int height=1392;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	IppiSize roi = {1024, 1392};&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	int size, size1;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp16s *dx = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp16s *dy = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp8u *imgCache = ippiMalloc_8u_C1(1024, 1392,&amp;amp;imgStep8);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp8u *edges = ippiMalloc_8u_C1(1024, 1392, &amp;amp;imgStep8);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	for(int i=0; i &amp;lt; (width*height); i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		imgCache&lt;I&gt; = (ptr&lt;I&gt;/16);&lt;/I&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ippiFilterSobelVertGetBufferSize_8u16s_C1R(roi, ippMskSize3x3, &amp;amp;size);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ippiFilterSobelHorizGetBufferSize_8u16s_C1R(roi, ippMskSize3x3, &amp;amp;size1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	if(size&lt;SIZE1&gt;&lt;DIV id="_mcePaste"&gt;	ippiCannyGetSize(roi, &amp;amp;size1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	if(size&lt;SIZE1&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	Ipp8u * buffer = ippsMalloc_8u(size);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ippiFilterSobelVertBorder_8u16s_C1R(imgCache, 1024*sizeof(Ipp8u), dx, 1024*sizeof(Ipp16s), roi, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ippiFilterSobelHorizBorder_8u16s_C1R(imgCache, 1024*sizeof(Ipp8u), dy, 1024*sizeof(Ipp16s), roi, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	ippiCanny_16s8u_C1R(dx, 1024*sizeof(Ipp16s), dy, 1024*sizeof(Ipp16s), edges, 1024*sizeof(Ipp8u), roi, 100, 1000, buffer);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	return edges;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;}&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;Ipp8u * doCanny(Ipp16u* ptr) {&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;	int width=1024;	int height=1392;	IppiSize roi = {1024, 1392};&lt;BR /&gt;	int size, size1;	Ipp16s *dx = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);	Ipp16s *dy = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;BR /&gt;	Ipp8u *imgCache = ippiMalloc_8u_C1(1024, 1392,&amp;amp;imgStep8);	Ipp8u *edges = ippiMalloc_8u_C1(1024, 1392, &amp;amp;imgStep8);&lt;BR /&gt;	for(int i=0; i &amp;lt; (width*height); i++) {		imgCache&lt;I&gt; = (ptr&lt;I&gt;/16);	}&lt;BR /&gt;	ippiFilterSobelVertGetBufferSize_8u16s_C1R(roi, ippMskSize3x3, &amp;amp;size);	ippiFilterSobelHorizGetBufferSize_8u16s_C1R(roi, ippMskSize3x3, &amp;amp;size1);&lt;BR /&gt;	if(size&lt;SIZE1&gt;&lt;/SIZE1&gt;	Ipp8u * buffer = ippsMalloc_8u(size);&lt;/I&gt;&lt;/I&gt;&lt;/SIZE1&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;	ippiFilterSobelVertBorder_8u16s_C1R(imgCache, 1024*sizeof(Ipp8u), dx, 1024*sizeof(Ipp16s), roi, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;/DIV&gt;&lt;DIV&gt;ippiFilterSobelHorizBorder_8u16s_C1R(imgCache, 1024*sizeof(Ipp8u), dy, 1024*sizeof(Ipp16s), roi, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;BR /&gt;&lt;BR /&gt;	ippiCanny_16s8u_C1R(dx, 1024*sizeof(Ipp16s), dy, 1024*sizeof(Ipp16s), edges, 1024*sizeof(Ipp8u), roi, 100, 1000, buffer);&lt;BR /&gt;	return edges;}&lt;/DIV&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;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Source image (just a square):&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;IMG height="847" width="687" src="http://i54.tinypic.com/s4xcsi.png" /&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;&lt;/DIV&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;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;edges image:&lt;/DIV&gt;&lt;DIV&gt;&lt;IMG height="848" width="711" src="http://i54.tinypic.com/2ymsh1u.png" /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/SIZE1&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Fri, 08 Jul 2011 23:02:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793575#M2601</guid>
      <dc:creator>androoy</dc:creator>
      <dc:date>2011-07-08T23:02:16Z</dc:date>
    </item>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793576#M2602</link>
      <description>Hi androoy,&lt;BR /&gt;&lt;BR /&gt;The code looks no problem. but from the result image,it looksstill some errors in data access. &lt;BR /&gt;&lt;BR /&gt;1)For example, if your prc imageis aRGB 3 channal image with 8u data type, thenthe assignmentmay not correct.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV id="_mcePaste"&gt;for(int i=0; i &amp;lt; (width*height); i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;imgCache&lt;I&gt; = (ptr&lt;I&gt;/16);&lt;/I&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;}. &lt;/DIV&gt;what data format isin ptr? &lt;BR /&gt;&lt;BR /&gt;2)The edge image is 8u 1 channale image with width=1024, hight=1392, but the shown edges image have about width 500, is there any problem in showing the image? &lt;BR /&gt;&lt;BR /&gt;Additionally,it is recommended to use imgStep8, imgStep16 other thanthe width*sizeof(Ipp8u) as widthStep. Luckily, you have 1024 as width, they are same.If other value like 1000, then imgStep8&lt;STRONG&gt;!=&lt;/STRONG&gt;1000*sizeof(Ipp8u). &lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Ying</description>
      <pubDate>Mon, 11 Jul 2011 03:35:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793576#M2602</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2011-07-11T03:35:12Z</dc:date>
    </item>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793577#M2603</link>
      <description>&lt;DIV&gt;Thanks for the help Ying,&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;1) I am reading in data into ptr this way:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV id="_mcePaste"&gt;Ipp16u * ptr;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ptr = ippiMalloc_16u_C1(imgSize.width, imgSize.height, &amp;amp;imgStep16);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	FILE * fp=fopen("C://Users//Yuja//Documents//MATLAB//test.raw", "rb");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	fread(ptr, sizeof(short), 1024*1392, fp);&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The file test.raw is full of image data which is only 12 bits large, but uses a 16bit container (which is why I read it in as a short). In this case, it is just a square for my test image. There is only 1 channel. I then convert the data in ptr&lt;X&gt; to an Ipp8u by dividing it by 16 and storing it in imgCache.&lt;/X&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;2) You are right, I messed up displaying the image. I was displaying it at 16s instead of 8u. Here is the correct resulting image:&lt;/DIV&gt;&lt;DIV&gt;&lt;IMG src="http://i53.tinypic.com/24mt2is.png" /&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;Also, here is how I am outputting the data.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;Ipp8u *edges1;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;//Ipp8u *edges2;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;edges1 = ippiMalloc_8u_C1(imgSize.width, imgSize.height, &amp;amp;imgStep8);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;edges2 = ippiMalloc_8u_C1(imgSize.width, imgSize.height, &amp;amp;imgStep8);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;edges1 = doCanny(ptr);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;//edges2 = doCanny(ptr2);&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;ofstream myfile;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;myfile.open("C://Users//Yuja//Documents//MATLAB//edge1.raw", ios::out | ios::binary);&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;for(int i=0; i&amp;lt; 1024*1392; i++) {&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;myfile.write((char*)&amp;amp;edges1&lt;I&gt;, sizeof(char));&lt;/I&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;}&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;myfile.close();&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Perhaps the problem is in how I output the data?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Some additional info:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;int size, size1;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;Ipp16s *dx = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;Ipp16s *dy = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;Ipp8u *imgCache = ippiMalloc_8u_C1(1024, 1392,&amp;amp;imgStep8);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;Ipp8u *edges = ippiMalloc_8u_C1(1024, 1392, &amp;amp;imgStep8);&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 11 Jul 2011 16:26:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793577#M2603</guid>
      <dc:creator>androoy</dc:creator>
      <dc:date>2011-07-11T16:26:58Z</dc:date>
    </item>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793578#M2604</link>
      <description>&lt;P&gt;Hello androoy, &lt;BR /&gt;&lt;BR /&gt;I guess, the problem is in the original image ptr and image show. &lt;BR /&gt;Do you have chance to show the imagein imgCache? &lt;BR /&gt;&lt;BR /&gt;I upload one small sample (cpp code)to show the image, you may try it. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Ying&lt;BR /&gt;&lt;BR /&gt;//ippiCanny.cpp &lt;/P&gt;&lt;P&gt;#include &lt;STDIO.H&gt;&lt;BR /&gt;#include &lt;STDLIB.H&gt;&lt;BR /&gt;#include &lt;IOSTREAM&gt;&lt;BR /&gt;#include "ipp.h"&lt;/IOSTREAM&gt;&lt;/STDLIB.H&gt;&lt;/STDIO.H&gt;&lt;/P&gt;&lt;P&gt;extern void* ipView_8u_C1R(const Ipp8u* pData, int step, IppiSize roi, &lt;BR /&gt; const char* caption, int isModalView); //from ippview.cpp&lt;/P&gt;&lt;P&gt;int main()&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;int width=1024;&lt;BR /&gt;int height=1392;&lt;BR /&gt;IppiSize roi = {1024, 1392};&lt;BR /&gt;int size, size1;&lt;BR /&gt;int imgStep16, imgStep8;&lt;BR /&gt;Ipp16s *dx = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;BR /&gt;Ipp16s *dy = ippiMalloc_16s_C1(1024, 1392, &amp;amp;imgStep16);&lt;BR /&gt;Ipp8u *imgCache = ippiMalloc_8u_C1(1024, 1392,&amp;amp;imgStep8);&lt;BR /&gt;Ipp8u *edges = ippiMalloc_8u_C1(1024, 1392, &amp;amp;imgStep8);&lt;BR /&gt;//ippiImageJaehne_8u_C1R(imgCache, imgStep8, roi);&lt;BR /&gt;IppiSize sqrSize={400, 400};&lt;BR /&gt;ippiSet_8u_C1R(255, imgCache+800*imgStep8+200, imgStep8, sqrSize);&lt;BR /&gt;/*for(int i=0; i &amp;lt; (width*height); i++) {&lt;BR /&gt;imgCache&lt;I&gt; = (i/16);&lt;BR /&gt;}*/&lt;BR /&gt;ipView_8u_C1R( imgCache, imgStep8, roi, "imgCache", 0 );&lt;BR /&gt;ippiFilterSobelVertGetBufferSize_8u16s_C1R(roi, ippMskSize3x3, &amp;amp;size);&lt;BR /&gt;ippiFilterSobelHorizGetBufferSize_8u16s_C1R(roi, ippMskSize3x3, &amp;amp;size1);&lt;BR /&gt;if(size&lt;SIZE1&gt;&lt;/SIZE1&gt;ippiCannyGetSize(roi, &amp;amp;size1);&lt;BR /&gt;if(size&lt;SIZE1&gt;&lt;/SIZE1&gt;Ipp8u * buffer = ippsMalloc_8u(size);&lt;BR /&gt;ippiFilterSobelVertBorder_8u16s_C1R(imgCache, 1024*sizeof(Ipp8u), dx, 1024*sizeof(Ipp16s), roi, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;BR /&gt;ippiFilterSobelHorizBorder_8u16s_C1R(imgCache, 1024*sizeof(Ipp8u), dy, 1024*sizeof(Ipp16s), roi, ippMskSize3x3, ippBorderRepl, 0, buffer);&lt;BR /&gt;ippiCanny_16s8u_C1R(dx, 1024*sizeof(Ipp16s), dy, 1024*sizeof(Ipp16s), edges, 1024*sizeof(Ipp8u), roi, 100, 1000, buffer);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ipView_8u_C1R( edges, imgStep8, roi, "edges", 1 );&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Jul 2011 02:31:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793578#M2604</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2011-07-12T02:31:29Z</dc:date>
    </item>
    <item>
      <title>ippiCanny Example/help?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793579#M2605</link>
      <description>Thank you Ying. I managed to get it working thanks to you. Your example should really replace the one in the documentation.</description>
      <pubDate>Tue, 12 Jul 2011 21:44:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippiCanny-Example-help/m-p/793579#M2605</guid>
      <dc:creator>androoy</dc:creator>
      <dc:date>2011-07-12T21:44:31Z</dc:date>
    </item>
  </channel>
</rss>

