个人记录,不喜勿喷。
分享给有需要的人,代码质量勿喷。
一、创建灰度图
void CreateGray()
{
int rows = 256;
int cols = 512;
cv::Mat img = cv::Mat::zeros(rows, cols, CV_8UC1);/* zeros可有可无 */
for (int row = 0; row < rows; row++)
{
uchar* uc = img.data + row * img.step;
for (int col = 0; col < cols; col++)
{
uc[0] = row;
uc += 1;
}
}
cv::imwrite("F:/gray.png", img, { 16, 1 });//0质量最高,默认为1
}
二、创建彩色RGB图
void CreateRGB()
{
int rows = 256;
int cols = 512;
cv::Mat img = cv::Mat::zeros(rows, cols, CV_8UC3);/* zeros可有可无 */
for (int row = 0; row < rows; row++)
{
uchar* ucBGR = img.data + row * img.step;
for (int col = 0; col < cols; col++)
{
int xjBlue = 255;
int xjGreen = 0;
int xjRed = 0;
if ((200 < col) && (col < 300))
{
xjBlue = 0;
xjGreen = 255;
xjRed = 0;
}
else if ((300 <= col) && (col < cols))
{
xjBlue = 0;
xjGreen = 0;
xjRed = 255;
}
ucBGR[0] = xjBlue;
ucBGR[1] = xjGreen;
ucBGR[2] = xjRed;
ucBGR += 3;
}
}
cv::imwrite("F:/RGB.jpg", img, { 1, 95 });//100质量最高,默认为95
}