<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
OK, so I’m taking your advice and putting things back the way they were.
<div class=""><br class="">
</div>
<div class="">I spent 45+ minutes trying to figure out how to make vtkImageData reflect using vtkImageFlip. So I gave up and just used the Accelerate Framework in iOS to get the job done which was trivial. Would be nice if someone could give an example that
 works within the context of VES, because the example I found was making calls into VTK actors and mappers that aren’t available (in an obvious way) to VES.</div>
<div class=""><br class="">
</div>
<div class="">                void *rawPixelData = malloc(<span style="font-family: Menlo; font-size: 11px;" class="">videoFrame.</span><span style="font-family: Menlo; font-size: 11px; color: rgb(79, 129, 135);" class="">totalBytes</span>);</div>
<div class="">
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">        vImage_Buffer</span> mirrorImageBuffer;</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">        mirrorImageBuffer.<span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">width</span> = videoFrame.<span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">width</span>;</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">        mirrorImageBuffer.<span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">height</span> = videoFrame.<span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">height</span>;</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">        mirrorImageBuffer.<span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">rowBytes</span> = videoFrame.<span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">bytesPerRow</span>;</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">        mirrorImageBuffer.<span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">data</span> = rawPixelData;</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">        <span style="font-variant-ligatures: no-common-ligatures; color: #3d1d81" class="">
vImageVerticalReflect_ARGB8888</span>(&rgbaImageBuffer, &mirrorImageBuffer, <span style="font-variant-ligatures: no-common-ligatures; color: #3d1d81" class="">
kvImageDoNotTile</span>);</div>
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><span class="Apple-tab-span" style="white-space:pre"></span>…</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">       </div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">        free(rawPixelData);</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">My thought was that within the vesKiwiImagePlaneDataRepresentation you could just flip the image in setImageData, but I felt to do it there I would be down to manipulating the shader per
 usual and I’m loath to do that.</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">cameron.</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On 26. jan. 2015, at 14.53, Cory Quammen <<a href="mailto:cory.quammen@kitware.com" class="">cory.quammen@kitware.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
I don't know if that's a supremely bad idea, but it may make life complicated if you want to display anything else besides the image :-)
<div class=""><br class="">
</div>
<div class="">It might be safest to just flip the image with the vtkImageFlip filter or flip the order of pixels in the incoming image yourself.</div>
</div>
<div class="gmail_extra" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<br class="">
<div class="gmail_quote">On Mon, Jan 26, 2015 at 8:49 AM, Cameron Lowell Palmer<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:cameron.palmer@ntnu.no" target="_blank" class="">cameron.palmer@ntnu.no</a>></span><span class="Apple-converted-space"> </span>wrote:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">
<div style="word-wrap: break-word; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class="">On a scale of 1 to supremely bad idea, how about flipping the location of the camera and view up?</div>
<div class=""><br class="">
</div>
<div class="">I did precisely that by making the camera face the positive z-axis, this also required me to flip the Y-Axis by changing the view up. I thought the issue was that the camera facing the negative z-axis and therefore was seeing the backside of the
 image.</div>
<div class=""><br class="">
</div>
<div class="">cameron</div>
<div class=""><br class="">
</div>
<span class="">
<div style="font-family: Calibri; font-size: 11pt; text-align: left; border-width: 1pt medium medium; border-style: solid none none; padding: 3pt 0in 0in; border-top-color: rgb(181, 196, 223);" class="">
<span style="font-weight: bold;" class="">From:<span class="Apple-converted-space"> </span></span>Cory Quammen <<a href="mailto:cory.quammen@kitware.com" target="_blank" class="">cory.quammen@kitware.com</a>><br class="">
<span style="font-weight: bold;" class="">Date:<span class="Apple-converted-space"> </span></span>mandag 26. januar 2015 14.45<br class="">
<span style="font-weight: bold;" class="">To:<span class="Apple-converted-space"> </span></span>Cameron Lowell Palmer <<a href="mailto:cameron.palmer@ntnu.no" target="_blank" class="">cameron.palmer@ntnu.no</a>><br class="">
<span style="font-weight: bold;" class="">Cc:<span class="Apple-converted-space"> </span></span>VTK Users <<a href="mailto:vtkusers@vtk.org" target="_blank" class="">vtkusers@vtk.org</a>><br class="">
<span style="font-weight: bold;" class="">Subject:<span class="Apple-converted-space"> </span></span>Re: [vtkusers] vtkImageData Reflection<br class="">
</div>
<div class="">
<div class="h5">
<div class=""><br class="">
</div>
<div class="">
<div class="">
<div dir="ltr" class="">Cameron,
<div class=""><br class="">
</div>
<div class="">It looks like your camera's convention for image origin and VTK's disagree. You could correct it in the display by scaling the reversed axis of the actor that displays the image by -1, or you can flip the data after import with a vtkImageFlip
 filiter.</div>
<div class=""><br class="">
</div>
<div class="">HTH,</div>
<div class="">Cory</div>
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">On Mon, Jan 26, 2015 at 7:29 AM, Cameron Lowell Palmer<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:cameron.palmer@ntnu.no" target="_blank" class="">cameron.palmer@ntnu.no</a>></span><span class="Apple-converted-space"> </span>wrote:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">
<div style="word-wrap: break-word;" class="">
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">When receiving a camera frame I’m converting to vtkImageData like this:</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(112, 61, 170);" class="">
<span style="" class=""><br class="">
</span></div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(112, 61, 170);" class="">
<span style="" class="">    </span><span style="color: rgb(187, 44, 162);" class="">auto</span><span style="" class=""><span class="Apple-converted-space"> </span>imageImport =<span class="Apple-converted-space"> </span></span>vtkSmartPointer<span style="" class=""><</span>vtkImageImport<span style="" class="">>::</span><span style="color: rgb(61, 29, 129);" class="">New</span><span style="" class="">();</span></div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    imageImport-><span style="color: rgb(61, 29, 129);" class="">SetDataSpacing</span>(<span style="color: rgb(39, 42, 216);" class="">1.0f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">1.0f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">1.0f</span>);</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    imageImport-><span style="color: rgb(61, 29, 129);" class="">SetDataOrigin</span>(<span style="color: rgb(39, 42, 216);" class="">0.f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">0.f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">0.f</span>);</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    imageImport-><span style="color: rgb(61, 29, 129);" class="">SetWholeExtent</span>(<span style="color: rgb(39, 42, 216);" class="">0.f</span>, videoFrame.<span style="color: rgb(79, 129, 135);" class="">width</span><span class="Apple-converted-space"> </span>-<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">1.f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">0.f</span>,
 videoFrame.<span style="color: rgb(79, 129, 135);" class="">height</span><span class="Apple-converted-space"> </span>-<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">1.f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">0.f</span>,<span class="Apple-converted-space"> </span><span style="color: rgb(39, 42, 216);" class="">0.f</span>);</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(61, 29, 129);" class="">
<span style="" class="">    imageImport-></span>SetDataExtentToWholeExtent<span style="" class="">();</span></div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(61, 29, 129);" class="">
<span style="" class="">    imageImport-></span>SetDataScalarTypeToUnsignedChar<span style="" class="">();</span></div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(61, 29, 129);" class="">
<span style="" class="">    imageImport-></span>SetNumberOfScalarComponents<span style="" class="">(</span><span style="color: rgb(39, 42, 216);" class="">4</span><span style="" class="">);</span></div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    imageImport-><span style="color: rgb(61, 29, 129);" class="">SetImportVoidPointer</span>(videoFrame.<span style="color: rgb(79, 129, 135);" class="">rawPixelData</span>);</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    imageImport-><span style="color: rgb(61, 29, 129);" class="">Update</span>();</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class="">
<br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">   <span class="Apple-converted-space"> </span><span style="color: rgb(112, 61, 170);" class="">vtkSmartPointer</span><<span style="color: rgb(112, 61, 170);" class="">vtkImageData</span>>
 imageData = imageImport-><span style="color: rgb(61, 29, 129);" class="">GetOutput</span>();</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">It works, but adding this to an image plane the image is mirrored across the Y-axis (right-left). Am I doing this image conversion correctly?</div>
<span class=""><font color="#888888" class="">
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class=""><br class="">
</div>
<div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">cameron</div>
</font></span></div>
<br class="">
_______________________________________________<br class="">
Powered by<span class="Apple-converted-space"> </span><a href="http://www.kitware.com/" target="_blank" class="">www.kitware.com</a><br class="">
<br class="">
Visit other Kitware open-source projects at<span class="Apple-converted-space"> </span><a href="http://www.kitware.com/opensource/opensource.html" target="_blank" class="">http://www.kitware.com/opensource/opensource.html</a><br class="">
<br class="">
Please keep messages on-topic and check the VTK FAQ at:<span class="Apple-converted-space"> </span><a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank" class="">http://www.vtk.org/Wiki/VTK_FAQ</a><br class="">
<br class="">
Search the list archives at:<span class="Apple-converted-space"> </span><a href="http://markmail.org/search/?q=vtkusers" target="_blank" class="">http://markmail.org/search/?q=vtkusers</a><br class="">
<br class="">
Follow this link to subscribe/unsubscribe:<br class="">
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank" class="">http://public.kitware.com/mailman/listinfo/vtkusers</a><br class="">
<br class="">
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
--<span class="Apple-converted-space"> </span><br class="">
<div class="">Cory Quammen<br class="">
R&D Engineer<br class="">
Kitware, Inc.</div>
</div>
</div>
</div>
</div>
</div>
</span></div>
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
--<span class="Apple-converted-space"> </span><br class="">
<div class="gmail_signature">Cory Quammen<br class="">
R&D Engineer<br class="">
Kitware, Inc.</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>