制作灰度条

原理

灰度线,R, G, B 三分量相等

256*100 的灰度条

Mat src = Mat(100, 256, CV_8UC3); // 256*100 8位3通道 定义空间

// 灰度赋值
for (int i = 0; i < src.cols; ++i) { // 256列
    uchar ch = (uchar) i; // Vec3b的数据类型是uchar
    for (int j = 0; j < src.rows; ++j) { // 100行
        src.at<Vec3b>(j, i) = {ch, ch, ch}; // 第i列,第j行
    }
}

注意赋值的时候是 (j, i)

灰度条

源代码

通过输出 Mat 矩阵 测试

#include <cv.h>
#include <highgui.h>

using namespace cv;
using namespace std;

void scanImageMatrix(Mat &src) {
    for (int i = 0; i < src.rows; ++i) {
        for (int j = 0; j < src.cols; ++j) {
            cout << src.at<Vec3b>(i, j) << ", ";
        }
        cout << endl;
    }
}

int main() {

    Mat src = Mat(100, 256, CV_8UC3); // 256*100 的 8位3通道

    // 灰度赋值
    for (int i = 0; i < src.cols; ++i) { // 256列
        uchar ch = (uchar) i; // Vec3b的数据类型是uchar
        for (int j = 0; j < src.rows; ++j) { // 100行
            src.at<Vec3b>(j, i) = {ch, ch, ch}; // 第i列,第j行
        }
    }

    scanImageMatrix(src);

    namedWindow("Gray");
    imshow("Gray", src);

    waitKey(0);
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 由于H.264等压缩算法都是在YUV的颜色空间上进行的,所有在进行压缩前,首先要进行颜色空间的转换。如果摄像头采集...
    眷卿三世阅读 14,641评论 2 6
  • 图像的点运算主要用于改变一副图像的灰度分布范围。操作对象是单个像素值,输出像素值只与输入像素值有关。 灰度直方图 ...
    plus先生阅读 5,572评论 0 0
  • 有人说:做学问,做事业,在人生中都只能算是第二桩事。人生第一桩事是生活。我所谓的生活是享受,是领略,是培养生机。假...
    总相信美好阅读 1,576评论 0 0
  • 前记: 十多年前,我在深圳一家日报社里实习。 一天,报社接到一个电话,一个叫琴的女人想让我们报社帮忙给她寻找遗失的...
    一笑作春风阅读 12,555评论 256 377
  • 1.坐下来,开始写吧 写作其实特别简单:坐下来,打开电脑,手机调到飞行模式,开始写吧。 这确实是一个不错的方法,我...
    我是工科生阅读 3,060评论 0 2

友情链接更多精彩内容