1. 程式人生 > >opencv學習-使用指標遍歷影象

opencv學習-使用指標遍歷影象

1.通過一個雙重迴圈來遍歷所有的畫素值
2.ptr並無特別含義,通常用來定義一個指標變數
3.*s++=p等於s=*p,*s++
4.為了降低分析的複雜度,降低影象中的顏色數目是有用的。如果N是顏色縮小比例,那麼對於影象中每個畫素的每一個通道,將其值除以N(整數除法,捨去餘數),然後再乘N,這樣就能得到不大於原始畫素值的N的最大倍值。
5.0xff相當於十進位制的255

#include  <opencv2/opencv.hpp>
#include  <iostream>
using namespace cv;
using namespace std;
void colordec(Mat &image, int div=64)
{
 int nl = image.rows;//行數
 int nc = image.cols*image.channels();//每行元素個數
 for (int j = 0; j < nl; j++)
 {
  uchar*data = image.ptr<uchar>(j);//得到j行的首地址  for (int i = 0; i < nc; i++)
  {
   data[i] = data[i] / div * div + div / 2;//處理每一個畫素
  }
 }
}
int main()
{
 Mat srcImage = imread("3.jpg");
 colordec(srcImage);
 namedWindow("picture");
 imshow("picture", srcImage); waitKey(0);
 return 0;}

在這裡插入圖片描述