在迭代器中我們僅僅是獲得圖像矩陣的begin和end,然後增加迭代直至從begin到end,將*操作符添加在迭代器指針前,就可以訪問當前指向的內容。
使用迭代器訪問像素比較安全,不會出現越界的問題。
int main(){
int div=16;
Mat <span style="font-family: 'Microsoft YaHei';"> outputimage=imread("");//路徑</span>
Mat_<Vec3b>::iterator it=outputimage.begin<Vec3b>();//開始位置的迭代器
Mat_<Vec3b>::iterator itend=outputimage.end<Vec3b>();//終止位置的迭代器
for(;it!=itend;++it){
(*it)[0]=(*it)[0]/div*div+div/2;
<pre name="code" class="html"> (*it)[1]=(*it)[1]/div*div+div/2;
(*it)[2]=(*it)[2]/div*div+div/2;
}
imshow("處理後的圖像",outputimage);
waitKey(0);
}
關於迭代器的更加詳細介紹,參考下面一篇文章