一个简单的尝试,统计灰度图中共有哪些像素值。
思路:建立256大小的数组,以像素值为下标,遍历所有像素,对应像素值位置加1, 所有不为0的位置的下标即为图片中存在的像素值。
#include#include #include #include using namespace std; int getGrayValue(cv::Mat original_Image) { int grays[256] = {0}; for(int i = 0; i for(int j = 0; j < original_Image.cols; j++) { grays[original_Image.at (i, j)]++; } } cout<<"all value is ["; for(int i = 0; i < 256; i++) { if(grays[i] != 0) { cout< cv::Mat original_Image = cv::imread("./temp_map.png"); getGrayValue(original_Image); }
测试图片如下图:
程序运行结果:
test@test:$ ./opencv_sample all value is [0, 255, ]



