使用迭代器操作像素

       

       在迭代器中我們僅僅是獲得圖像矩陣的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);
}


   關於迭代器的更加詳細介紹,參考下面一篇文章

 點擊打開鏈接

發佈了31 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章