灰度图就是用一个通道来表示灰度值,范围为0-255,也就是8byte就可以。
所以在openv中type CV_8UC1就可以表示灰度图。
Mat img(size, CV_8UC1, Scalar(100));
以上生成一个灰度为100的矩阵,保存之后即为灰度图。
下面代码循环显示灰度值从0到255的灰度图.
#include <stdio.h>
#include <assert.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
#define SIZE 400
int main(int argc, char **argv) {
Size size(SIZE, SIZE);
Mat img(size, CV_8UC1, Scalar(100));
namedWindow("opencv", WINDOW_FREERATIO);
int i = 0;
while (i < 10000) {
i++;
img = Scalar(i % 255);
// imwrite("out.jpg", img);
imshow("111", img);
int k = waitKey(30);
}
return 0;
}