opencv學習-使用指標遍歷影象
阿新 • • 發佈:2018-10-31
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;}