aboutsummaryrefslogtreecommitdiff
path: root/21.02/_inference_test_image_8hpp_source.xhtml
blob: 07611c246c96fbb65edb36752b8247eefdd76193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: tests/InferenceTestImage.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">21.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_inference_test_image_8hpp_source.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">InferenceTestImage.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_inference_test_image_8hpp.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright © 2017 Arm Ltd. All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_exceptions_8hpp.xhtml">armnn/Exceptions.hpp</a>&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_verification_helpers_8hpp.xhtml">VerificationHelpers.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_inference_test_image_exception.xhtml">   15</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a> : <span class="keyword">public</span> <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">using</span> Exception::Exception;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;};</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="class_inference_test_image_load_failed.xhtml">   21</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inference_test_image_load_failed.xhtml">InferenceTestImageLoadFailed</a> : <span class="keyword">public</span> <a class="code" href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keyword">using</span> InferenceTestImageException::InferenceTestImageException;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;};</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_inference_test_image_out_of_bounds_access.xhtml">   27</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inference_test_image_out_of_bounds_access.xhtml">InferenceTestImageOutOfBoundsAccess</a> : <span class="keyword">public</span> <a class="code" href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;{</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">using</span> InferenceTestImageException::InferenceTestImageException;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;};</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_inference_test_image_resize_failed.xhtml">   33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inference_test_image_resize_failed.xhtml">InferenceTestImageResizeFailed</a> : <span class="keyword">public</span> <a class="code" href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keyword">using</span> InferenceTestImageException::InferenceTestImageException;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;};</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_inference_test_image_write_failed.xhtml">   39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inference_test_image_write_failed.xhtml">InferenceTestImageWriteFailed</a> : <span class="keyword">public</span> <a class="code" href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keyword">using</span> InferenceTestImageException::InferenceTestImageException;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;};</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_unknown_image_channel_layout.xhtml">   45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_unknown_image_channel_layout.xhtml">UnknownImageChannelLayout</a> : <span class="keyword">public</span> <a class="code" href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keyword">using</span> InferenceTestImageException::InferenceTestImageException;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml">   51</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#afe2346f1f07296902bc8d84beb69b45d">   54</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="class_inference_test_image.xhtml#afe2346f1f07296902bc8d84beb69b45d">WriteFormat</a></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    {</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        Png,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        Bmp,</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        Tga</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    };</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="comment">// Common names used to identify a channel in a pixel.</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#ae7a403f69a7717c1eaae1d74b7bb7bce">   62</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="class_inference_test_image.xhtml#ae7a403f69a7717c1eaae1d74b7bb7bce">ResizingMethods</a></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        STB,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        BilinearAndNormalized,</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    };</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filePath);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>(<a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp;&amp;) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>(<span class="keyword">const</span> <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp;) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp;) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp; operator=(<a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp;&amp;) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#a4ec823e49ce46950b3d4cee1efff050b">   75</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_inference_test_image.xhtml#a4ec823e49ce46950b3d4cee1efff050b">GetWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_Width; }</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#a0983225e32025d901ce6547170892f56">   76</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_inference_test_image.xhtml#a0983225e32025d901ce6547170892f56">GetHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_Height; }</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#a5a1e22b2882917bcd82a14328ff2c5d6">   77</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_inference_test_image.xhtml#a5a1e22b2882917bcd82a14328ff2c5d6">GetNumChannels</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_NumChannels; }</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#a8846406ac37fbd2204f0be16ee05d5b7">   78</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_inference_test_image.xhtml#a8846406ac37fbd2204f0be16ee05d5b7">GetNumElements</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> GetWidth() * GetHeight() * GetNumChannels(); }</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_inference_test_image.xhtml#acd495024dcb50f4081d5c05a1e66d210">   79</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_inference_test_image.xhtml#acd495024dcb50f4081d5c05a1e66d210">GetSizeInBytes</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> GetNumElements() * GetSingleElementSizeInBytes(); }</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="comment">// Returns the pixel identified by the given coordinates as a 3-channel value.</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">// Channels beyond the third are dropped. If the image provides less than 3 channels, the non-existent</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="comment">// channels of the pixel will be filled with 0. Channels are returned in RGB order (that is, the first element</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="comment">// of the tuple corresponds to the Red channel, whereas the last element is the Blue channel).</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    std::tuple&lt;uint8_t, uint8_t, uint8_t&gt; GetPixelAs3Channels(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y) <span class="keyword">const</span>;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">void</span> StbResize(<a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp; im, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newWidth, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newHeight);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    std::vector&lt;float&gt; <a class="code" href="namespacearmnn.xhtml#a6894316aa645fd5e837739135bef04bb">Resize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newWidth,</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                              <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newHeight,</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                              <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_check_location.xhtml">armnn::CheckLocation</a>&amp; location,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                              <span class="keyword">const</span> <a class="code" href="class_inference_test_image.xhtml#ae7a403f69a7717c1eaae1d74b7bb7bce">ResizingMethods</a> meth = ResizingMethods::STB,</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                              <span class="keyword">const</span> std::array&lt;float, 3&gt;&amp; mean = {{0.0, 0.0, 0.0}},</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                              <span class="keyword">const</span> std::array&lt;float, 3&gt;&amp; stddev = {{1.0, 1.0, 1.0}},</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                              <span class="keyword">const</span> <span class="keywordtype">float</span> scale = 255.0f);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> Write(<a class="code" href="class_inference_test_image.xhtml#afe2346f1f07296902bc8d84beb69b45d">WriteFormat</a> format, <span class="keyword">const</span> <span class="keywordtype">char</span>* filePath) <span class="keyword">const</span>;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetSingleElementSizeInBytes()</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(decltype(std::declval&lt;InferenceTestImage&gt;().m_Data[0]));</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    std::vector&lt;uint8_t&gt; m_Data;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_Width;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_Height;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_NumChannels;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;};</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">// Common names used to identify a channel in a pixel.</span></div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296a">  113</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296a">ImageChannel</a></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <a class="code" href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296aae1e1d3d40573127e9ee0480caf1283d6">R</a>,</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <a class="code" href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296aadfcf28d0734569a6a693bc8194de62bf">G</a>,</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296aa9d5ed678fe57bcca610140957afab571">B</a></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">// Channel layouts handled by the test framework.</span></div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110">  121</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110">ImageChannelLayout</a></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <a class="code" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110aabe0e112dd5f40f1de00eccbf99798a3">Rgb</a>,</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <a class="code" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110a103b58155b4c5cc09249629e7ccd5dc2">Bgr</a></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;};</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">// Reads the contents of an inference test image as 3-channel pixels whose channel values have been normalized (scaled)</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">// and now lie in the range [0,1]. Channel data is stored according to the ArmNN layout (CHW). The order in which</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">// channels appear in the resulting vector is defined by the provided layout.</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;std::vector&lt;float&gt; <a class="code" href="_inference_test_image_8hpp.xhtml#a3f8ac82c346c723f775a383d22239182">GetImageDataInArmNnLayoutAsNormalizedFloats</a>(<a class="code" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110">ImageChannelLayout</a> layout,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                                                               <span class="keyword">const</span> <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp; image);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment">// Reads the contents of an inference test image as 3-channel pixels, whose value is the result of subtracting the mean</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment">// from the values in the original image. Channel data is stored according to the ArmNN layout (CHW). The order in</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">// which channels appear in the resulting vector is defined by the provided layout. The order of the channels of the</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">// provided mean should also match the given layout.</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;std::vector&lt;float&gt; <a class="code" href="_inference_test_image_8hpp.xhtml#a16f15d88afcc9c6bba231cc72bdd8cbf">GetImageDataInArmNnLayoutAsFloatsSubtractingMean</a>(<a class="code" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110">ImageChannelLayout</a> layout,</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                                                                    <span class="keyword">const</span> <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp; image,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                                                                    <span class="keyword">const</span> std::array&lt;float, 3&gt;&amp; mean);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment">// Reads the contents of an inference test image as 3-channel pixels and returns the image data as normalized float</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment">// values. The returned image stay in the original order (HWC) order. The C order may be changed according to the</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment">// supplied layout value.</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;std::vector&lt;float&gt; <a class="code" href="_inference_test_image_8hpp.xhtml#a0b39a9dcbed4124b88b7b58f5d77096f">GetImageDataAsNormalizedFloats</a>(<a class="code" href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110">ImageChannelLayout</a> layout,</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                                                  <span class="keyword">const</span> <a class="code" href="class_inference_test_image.xhtml">InferenceTestImage</a>&amp; image);</div><div class="ttc" id="class_inference_test_image_xhtml_afe2346f1f07296902bc8d84beb69b45d"><div class="ttname"><a href="class_inference_test_image.xhtml#afe2346f1f07296902bc8d84beb69b45d">InferenceTestImage::WriteFormat</a></div><div class="ttdeci">WriteFormat</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00054">InferenceTestImage.hpp:54</a></div></div>
<div class="ttc" id="class_unknown_image_channel_layout_xhtml"><div class="ttname"><a href="class_unknown_image_channel_layout.xhtml">UnknownImageChannelLayout</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00045">InferenceTestImage.hpp:45</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml_a8846406ac37fbd2204f0be16ee05d5b7"><div class="ttname"><a href="class_inference_test_image.xhtml#a8846406ac37fbd2204f0be16ee05d5b7">InferenceTestImage::GetNumElements</a></div><div class="ttdeci">unsigned int GetNumElements() const</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00078">InferenceTestImage.hpp:78</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a65983f8cb907d873f2328bb8307c296aadfcf28d0734569a6a693bc8194de62bf"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296aadfcf28d0734569a6a693bc8194de62bf">ImageChannel::G</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml_a5a1e22b2882917bcd82a14328ff2c5d6"><div class="ttname"><a href="class_inference_test_image.xhtml#a5a1e22b2882917bcd82a14328ff2c5d6">InferenceTestImage::GetNumChannels</a></div><div class="ttdeci">unsigned int GetNumChannels() const</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00077">InferenceTestImage.hpp:77</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a65983f8cb907d873f2328bb8307c296aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296aa9d5ed678fe57bcca610140957afab571">ImageChannel::B</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a3f8ac82c346c723f775a383d22239182"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a3f8ac82c346c723f775a383d22239182">GetImageDataInArmNnLayoutAsNormalizedFloats</a></div><div class="ttdeci">std::vector&lt; float &gt; GetImageDataInArmNnLayoutAsNormalizedFloats(ImageChannelLayout layout, const InferenceTestImage &amp;image)</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8cpp_source.xhtml#l00310">InferenceTestImage.cpp:310</a></div></div>
<div class="ttc" id="class_inference_test_image_write_failed_xhtml"><div class="ttname"><a href="class_inference_test_image_write_failed.xhtml">InferenceTestImageWriteFailed</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00039">InferenceTestImage.hpp:39</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a65983f8cb907d873f2328bb8307c296aae1e1d3d40573127e9ee0480caf1283d6"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296aae1e1d3d40573127e9ee0480caf1283d6">ImageChannel::R</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a65983f8cb907d873f2328bb8307c296a"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a65983f8cb907d873f2328bb8307c296a">ImageChannel</a></div><div class="ttdeci">ImageChannel</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00113">InferenceTestImage.hpp:113</a></div></div>
<div class="ttc" id="class_inference_test_image_load_failed_xhtml"><div class="ttname"><a href="class_inference_test_image_load_failed.xhtml">InferenceTestImageLoadFailed</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00021">InferenceTestImage.hpp:21</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a16f15d88afcc9c6bba231cc72bdd8cbf"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a16f15d88afcc9c6bba231cc72bdd8cbf">GetImageDataInArmNnLayoutAsFloatsSubtractingMean</a></div><div class="ttdeci">std::vector&lt; float &gt; GetImageDataInArmNnLayoutAsFloatsSubtractingMean(ImageChannelLayout layout, const InferenceTestImage &amp;image, const std::array&lt; float, 3 &gt; &amp;mean)</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8cpp_source.xhtml#l00321">InferenceTestImage.cpp:321</a></div></div>
<div class="ttc" id="class_inference_test_image_exception_xhtml"><div class="ttname"><a href="class_inference_test_image_exception.xhtml">InferenceTestImageException</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00015">InferenceTestImage.hpp:15</a></div></div>
<div class="ttc" id="_verification_helpers_8hpp_xhtml"><div class="ttname"><a href="_verification_helpers_8hpp.xhtml">VerificationHelpers.hpp</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml_a4ec823e49ce46950b3d4cee1efff050b"><div class="ttname"><a href="class_inference_test_image.xhtml#a4ec823e49ce46950b3d4cee1efff050b">InferenceTestImage::GetWidth</a></div><div class="ttdeci">unsigned int GetWidth() const</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00075">InferenceTestImage.hpp:75</a></div></div>
<div class="ttc" id="structarmnn_1_1_check_location_xhtml"><div class="ttname"><a href="structarmnn_1_1_check_location.xhtml">armnn::CheckLocation</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00014">Exceptions.hpp:14</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml_ae7a403f69a7717c1eaae1d74b7bb7bce"><div class="ttname"><a href="class_inference_test_image.xhtml#ae7a403f69a7717c1eaae1d74b7bb7bce">InferenceTestImage::ResizingMethods</a></div><div class="ttdeci">ResizingMethods</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00062">InferenceTestImage.hpp:62</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a0b39a9dcbed4124b88b7b58f5d77096f"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a0b39a9dcbed4124b88b7b58f5d77096f">GetImageDataAsNormalizedFloats</a></div><div class="ttdeci">std::vector&lt; float &gt; GetImageDataAsNormalizedFloats(ImageChannelLayout layout, const InferenceTestImage &amp;image)</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8cpp_source.xhtml#l00333">InferenceTestImage.cpp:333</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml"><div class="ttname"><a href="class_inference_test_image.xhtml">InferenceTestImage</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00051">InferenceTestImage.hpp:51</a></div></div>
<div class="ttc" id="class_inference_test_image_out_of_bounds_access_xhtml"><div class="ttname"><a href="class_inference_test_image_out_of_bounds_access.xhtml">InferenceTestImageOutOfBoundsAccess</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00027">InferenceTestImage.hpp:27</a></div></div>
<div class="ttc" id="class_inference_test_image_resize_failed_xhtml"><div class="ttname"><a href="class_inference_test_image_resize_failed.xhtml">InferenceTestImageResizeFailed</a></div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00033">InferenceTestImage.hpp:33</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml_acd495024dcb50f4081d5c05a1e66d210"><div class="ttname"><a href="class_inference_test_image.xhtml#acd495024dcb50f4081d5c05a1e66d210">InferenceTestImage::GetSizeInBytes</a></div><div class="ttdeci">unsigned int GetSizeInBytes() const</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00079">InferenceTestImage.hpp:79</a></div></div>
<div class="ttc" id="classarmnn_1_1_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_exception.xhtml">armnn::Exception</a></div><div class="ttdoc">Base class for all ArmNN exceptions so that users can filter to just those. </div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00046">Exceptions.hpp:46</a></div></div>
<div class="ttc" id="class_inference_test_image_xhtml_a0983225e32025d901ce6547170892f56"><div class="ttname"><a href="class_inference_test_image.xhtml#a0983225e32025d901ce6547170892f56">InferenceTestImage::GetHeight</a></div><div class="ttdeci">unsigned int GetHeight() const</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00076">InferenceTestImage.hpp:76</a></div></div>
<div class="ttc" id="_exceptions_8hpp_xhtml"><div class="ttname"><a href="_exceptions_8hpp.xhtml">Exceptions.hpp</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a5f7592b0a8fa09208cd32721cf207110"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110">ImageChannelLayout</a></div><div class="ttdeci">ImageChannelLayout</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_image_8hpp_source.xhtml#l00121">InferenceTestImage.hpp:121</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a5f7592b0a8fa09208cd32721cf207110aabe0e112dd5f40f1de00eccbf99798a3"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110aabe0e112dd5f40f1de00eccbf99798a3">ImageChannelLayout::Rgb</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a6894316aa645fd5e837739135bef04bb"><div class="ttname"><a href="namespacearmnn.xhtml#a6894316aa645fd5e837739135bef04bb">armnn::Resize</a></div><div class="ttdeci">void Resize(Decoder&lt; float &gt; &amp;in, const TensorInfo &amp;inputInfo, Encoder&lt; float &gt; &amp;out, const TensorInfo &amp;outputInfo, DataLayoutIndexed dataLayout, armnn::ResizeMethod resizeMethod, bool alignCorners, bool halfPixelCenters)</div><div class="ttdef"><b>Definition:</b> <a href="_resize_8cpp_source.xhtml#l00065">Resize.cpp:65</a></div></div>
<div class="ttc" id="_inference_test_image_8hpp_xhtml_a5f7592b0a8fa09208cd32721cf207110a103b58155b4c5cc09249629e7ccd5dc2"><div class="ttname"><a href="_inference_test_image_8hpp.xhtml#a5f7592b0a8fa09208cd32721cf207110a103b58155b4c5cc09249629e7ccd5dc2">ImageChannelLayout::Bgr</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_59425e443f801f1f2fd8bbe4959a3ccf.xhtml">tests</a></li><li class="navelem"><a class="el" href="_inference_test_image_8hpp.xhtml">InferenceTestImage.hpp</a></li>
    <li class="footer">Generated on Fri Mar 19 2021 15:26:05 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>