diff --git a/samples/openvx/wrappers.cpp b/samples/openvx/wrappers.cpp
index 6655d3fd241f41dd80a37411c021159f8720dbb0..da75857f5c04473b06072683e1da94c4e0c2c54c 100644
--- a/samples/openvx/wrappers.cpp
+++ b/samples/openvx/wrappers.cpp
@@ -82,10 +82,7 @@ int ovxDemo(std::string inputPath, UserMemoryMode mode)
         }
         else
         {
-            vx_imagepatch_addressing_t addressing = Image::createAddressing(image);
-            const std::vector<vx_imagepatch_addressing_t> addrs(1, addressing);
-            const std::vector<void*> ptrs(1, image.data);
-            ivxImage = Image::createFromHandle(context, color, addrs, ptrs);
+            ivxImage = Image::createFromHandle(context, color, Image::createAddressing(image), image.data);
         }
 
         Image ivxResult;
@@ -100,10 +97,8 @@ int ovxDemo(std::string inputPath, UserMemoryMode mode)
         {
             //create vx_image based on user data, no copying required
             output = cv::Mat(height, width, CV_8U, cv::Scalar(0));
-            vx_imagepatch_addressing_t addressing = Image::createAddressing(output);
-            const std::vector<vx_imagepatch_addressing_t> addrs(1, addressing);
-            const std::vector<void*> ptrs(1, output.data);
-            ivxResult = Image::createFromHandle(context, Image::matTypeToFormat(CV_8U), addrs, ptrs);
+            ivxResult = Image::createFromHandle(context, Image::matTypeToFormat(CV_8U),
+                                                Image::createAddressing(output), output.data);
         }
 
         Graph graph = createProcessingGraph(ivxImage, ivxResult);
diff --git a/samples/openvx/wrappers_video.cpp b/samples/openvx/wrappers_video.cpp
index c24d8ceedbfc72fbc0b6177a148a8a50bfa793b8..d08a8459793365372163d1b0a10c5a6d621c5119 100644
--- a/samples/openvx/wrappers_video.cpp
+++ b/samples/openvx/wrappers_video.cpp
@@ -91,10 +91,7 @@ int ovxDemo(std::string inputPath, UserMemoryMode mode)
         }
         else
         {
-            vx_imagepatch_addressing_t addressing = Image::createAddressing(frame);
-            const std::vector<vx_imagepatch_addressing_t> addrs(1, addressing);
-            const std::vector<void*> ptrs(1, frame.data);
-            ivxImage = Image::createFromHandle(context, color, addrs, ptrs);
+            ivxImage = Image::createFromHandle(context, color, Image::createAddressing(frame), frame.data);
         }
 
         Image ivxResult;
@@ -109,10 +106,8 @@ int ovxDemo(std::string inputPath, UserMemoryMode mode)
         {
             //create vx_image based on user data, no copying required
             output = cv::Mat(height, width, CV_8U, cv::Scalar(0));
-            vx_imagepatch_addressing_t addressing = Image::createAddressing(output);
-            const std::vector<vx_imagepatch_addressing_t> addrs(1, addressing);
-            const std::vector<void*> ptrs(1, output.data);
-            ivxResult = Image::createFromHandle(context, Image::matTypeToFormat(CV_8U), addrs, ptrs);
+            ivxResult = Image::createFromHandle(context, Image::matTypeToFormat(CV_8U),
+                                                Image::createAddressing(output), output.data);
         }
 
         Graph graph = createProcessingGraph(ivxImage, ivxResult);