📄 image_8cpp-source.html
字号:
<a name="l00151"></a>00151 <span class="comment">// ######################################################################</span><a name="l00152"></a><a class="code" href="classImage.html#1744e77216dece6f8150ddba16f57b1f">00152</a> <a class="code" href="classImage.html" title="Provides access and processing functions for an image.">Image</a> <a class="code" href="classImage.html#1744e77216dece6f8150ddba16f57b1f" title="Multiply all values by a scalar factor.">Image::operator*=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> factor)<a name="l00153"></a>00153 {<a name="l00154"></a>00154 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(<a class="code" href="classImage.html#b87bf4b103cb5a9cf090f8729f362335" title="Returns whether the Image is initialized.">isInitialized</a>());<a name="l00155"></a>00155 <span class="keywordflow">for</span> (<a class="code" href="classImage.html#01d14564f4b61f97d305e293716933cf" title="Read/write iterator.">iterator</a> ptr = <a class="code" href="classImage.html#9987bf538358f25470af7d628e97694a" title="Returns a read/write iterator to the beginning of the Image data.">beginw</a>(); ptr != <a class="code" href="classImage.html#6bd3897cec644d5fa71e3c10a0f8b393" title="Returns a read/write iterator to the one-past-the-end of the Image data.">endw</a>(); ++ptr)<a name="l00156"></a>00156 *ptr *= factor;<a name="l00157"></a>00157 <span class="keywordflow">return</span> *<span class="keyword">this</span>;<a name="l00158"></a>00158 }<a name="l00159"></a>00159 <a name="l00160"></a>00160 <span class="comment">// ######################################################################</span><a name="l00161"></a><a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba">00161</a> <span class="keywordtype">double</span> <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">Image::getVal</a>(<span class="keywordtype">int</span> index)<span class="keyword"> const</span><a name="l00162"></a>00162 <span class="keyword"></span>{<a name="l00163"></a>00163 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(<a class="code" href="classImage.html#b87bf4b103cb5a9cf090f8729f362335" title="Returns whether the Image is initialized.">isInitialized</a>());<a name="l00164"></a>00164 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(index < <a class="code" href="classImage.html#9e8efb4cb518bc0ab1253ce8d5ab2783" title="Returns the number of pixels in the Image.">getSize</a>());<a name="l00165"></a>00165 <span class="keywordflow">return</span> *(<a class="code" href="classImage.html#e0666b33daa7ba55e3348d4fff02356f" title="Returns a read-only iterator to the beginning of the Image data.">begin</a>()+index);<a name="l00166"></a>00166 }<a name="l00167"></a>00167 <a name="l00168"></a>00168 <span class="comment">// ######################################################################</span><a name="l00169"></a><a class="code" href="classImage.html#0356285c876ac4e8473bb7a3a5321cd0">00169</a> <span class="keywordtype">double</span> <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">Image::getVal</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y)<span class="keyword"> const</span><a name="l00170"></a>00170 <span class="keyword"></span>{<a name="l00171"></a>00171 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(<a class="code" href="classImage.html#c48ef479772ddafdfe71ab179ac77019" title="Check if the coordinates are within the bounds of the Image.">coordsOK</a>(x,y));<a name="l00172"></a>00172 <a class="code" href="classImage.html#f9f1ae298f5d8f8b44e4e34a72f61c2f" title="Read-only iterator.">const_iterator</a> ptr = <a class="code" href="classImage.html#e0666b33daa7ba55e3348d4fff02356f" title="Returns a read-only iterator to the beginning of the Image data.">begin</a>() + x * <a class="code" href="classImage.html#1cd7587f88b6932b5269051d1ba08ff9" title="Returns the height of the Image.">getHeight</a>() + y;<a name="l00173"></a>00173 <span class="keywordflow">return</span> *ptr;<a name="l00174"></a>00174 }<a name="l00175"></a>00175 <a name="l00176"></a>00176 <span class="comment">// ######################################################################</span><a name="l00177"></a><a class="code" href="classImage.html#085cb560bd1ea0e54726baf7f42a9580">00177</a> <span class="keywordtype">void</span> <a class="code" href="classImage.html#085cb560bd1ea0e54726baf7f42a9580" title="Sets a pixel value by index.">Image::setVal</a>(<span class="keywordtype">int</span> index, <span class="keywordtype">double</span> val)<a name="l00178"></a>00178 {<a name="l00179"></a>00179 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(<a class="code" href="classImage.html#b87bf4b103cb5a9cf090f8729f362335" title="Returns whether the Image is initialized.">isInitialized</a>());<a name="l00180"></a>00180 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(index < <a class="code" href="classImage.html#9e8efb4cb518bc0ab1253ce8d5ab2783" title="Returns the number of pixels in the Image.">getSize</a>());<a name="l00181"></a>00181 *(<a class="code" href="classImage.html#9987bf538358f25470af7d628e97694a" title="Returns a read/write iterator to the beginning of the Image data.">beginw</a>()+index) = val;<a name="l00182"></a>00182 }<a name="l00183"></a>00183 <a name="l00184"></a>00184 <span class="comment">// ######################################################################</span><a name="l00185"></a><a class="code" href="classImage.html#ed735294341ad4aaebf581edb9ceef98">00185</a> <span class="keywordtype">void</span> <a class="code" href="classImage.html#085cb560bd1ea0e54726baf7f42a9580" title="Sets a pixel value by index.">Image::setVal</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">double</span> val)<a name="l00186"></a>00186 {<a name="l00187"></a>00187 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(<a class="code" href="classImage.html#c48ef479772ddafdfe71ab179ac77019" title="Check if the coordinates are within the bounds of the Image.">coordsOK</a>(x,y));<a name="l00188"></a>00188 <a class="code" href="classImage.html#01d14564f4b61f97d305e293716933cf" title="Read/write iterator.">iterator</a> ptr = <a class="code" href="classImage.html#9987bf538358f25470af7d628e97694a" title="Returns a read/write iterator to the beginning of the Image data.">beginw</a>() + x * <a class="code" href="classImage.html#1cd7587f88b6932b5269051d1ba08ff9" title="Returns the height of the Image.">getHeight</a>() + y;<a name="l00189"></a>00189 *ptr = val;<a name="l00190"></a>00190 }<a name="l00191"></a>00191 <a name="l00192"></a>00192 <span class="comment">// ######################################################################</span><a name="l00193"></a><a class="code" href="classImage.html#7a7cd0a9881bb7462b124d5d864c712c">00193</a> <span class="keywordtype">void</span> <a class="code" href="classImage.html#7a7cd0a9881bb7462b124d5d864c712c" title="Count and sum all local maxima above a threshold.">Image::getLocalMaxima</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> thresh, <span class="keywordtype">int</span> *lm_num, <span class="keywordtype">double</span> *lm_sum)<a name="l00194"></a>00194 {<a name="l00195"></a>00195 <a class="code" href="mexLog_8h.html#092bd7bb2cb7fd9f483b6995cee61bc0">ASSERT</a>(<a class="code" href="classImage.html#b87bf4b103cb5a9cf090f8729f362335" title="Returns whether the Image is initialized.">isInitialized</a>());<a name="l00196"></a>00196 <a name="l00197"></a>00197 <span class="keyword">const</span> <span class="keywordtype">int</span> w = <a class="code" href="classImage.html#36bcae4838228d574738249a87dc4464" title="Returns the width of the Image.">getWidth</a>();<a name="l00198"></a>00198 <span class="keyword">const</span> <span class="keywordtype">int</span> h = <a class="code" href="classImage.html#1cd7587f88b6932b5269051d1ba08ff9" title="Returns the height of the Image.">getHeight</a>();<a name="l00199"></a>00199 <a name="l00200"></a>00200 <a name="l00201"></a>00201 <span class="comment">// then get the mean value of the local maxima:</span><a name="l00202"></a>00202 *lm_sum = 0.0; *lm_num = 0;<a name="l00203"></a>00203 <a name="l00204"></a>00204 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 1; j < h - 1; j ++)<a name="l00205"></a>00205 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i < w - 1; i ++)<a name="l00206"></a>00206 {<a name="l00207"></a>00207 <span class="keywordtype">double</span> val = <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">getVal</a>(i,j);<a name="l00208"></a>00208 <span class="keywordflow">if</span> (val >= thresh &&<a name="l00209"></a>00209 val >= <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">getVal</a>(i-1, j) &&<a name="l00210"></a>00210 val >= <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">getVal</a>(i+1, j) &&<a name="l00211"></a>00211 val >= <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">getVal</a>(i, j+1) &&<a name="l00212"></a>00212 val >= <a class="code" href="classImage.html#dc33e09c67dba8139626448f4dfcfdba" title="Returns a pixel value by index.">getVal</a>(i, j-1)) <span class="comment">// local max</span><a name="l00213"></a>00213 {<a name="l00214"></a>00214 *lm_sum += val;<a name="l00215"></a>00215 (*lm_num)++;<a name="l00216"></a>00216 }<a name="l00217"></a>00217 }<a name="l00218"></a>00218 <span class="keywordflow">return</span>;<a name="l00219"></a>00219 }<a name="l00220"></a>00220 <a name="l00221"></a>00221 <span class="comment">// ######################################################################</span><a name="l00222"></a><a class="code" href="classImage.html#c48ef479772ddafdfe71ab179ac77019">00222</a> <span class="keywordtype">bool</span> <a class="code" href="classImage.html#c48ef479772ddafdfe71ab179ac77019" title="Check if the coordinates are within the bounds of the Image.">Image::coordsOK</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y)<span class="keyword"> const</span><a name="l00223"></a>00223 <span class="keyword"></span>{<a name="l00224"></a>00224 <span class="keywordflow">if</span> (!<a class="code" href="classImage.html#b87bf4b103cb5a9cf090f8729f362335" title="Returns whether the Image is initialized.">isInitialized</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;<a name="l00225"></a>00225 <a name="l00226"></a>00226 <span class="keywordflow">return</span> ((x < <a class="code" href="classImage.html#36bcae4838228d574738249a87dc4464" title="Returns the width of the Image.">getWidth</a>()) && (y < <a class="code" href="classImage.html#1cd7587f88b6932b5269051d1ba08ff9" title="Returns the height of the Image.">getHeight</a>()));<a name="l00227"></a>00227 }</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 7 13:09:49 2007 for SaliencyToolbox by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -