opencv 入门基础

来源:互联网 发布:淘宝商家怎么做活动 编辑:程序博客网 时间:2024/05/29 16:44

这是深圳大学于老师的文档里的程序,就是为了巩固基础,加深对图像的理解。

include

include

using namespace std;
using namespace cv;
int main()
{
namedWindow(“灰度图”, 1);
namedWindow(“彩色图”, 1);

Mat grayImage (600, 800, CV_8UC1);Mat colorImage(600, 800, CV_8UC3);for (int i = 0; i < grayImage.rows; i++){    uchar *p = grayImage.ptr<uchar>(i);    for (int j = 0; j < grayImage.cols; j++)        p[j] =  j % 255; // }for (int i = 0; i < colorImage.rows; i++){    Vec3b*p = colorImage.ptr<Vec3b>(i);//获取第i行首像素指针    for (int j = 0; j < colorImage.cols; j++)    {        p[j][0] = j % 255;//B        p[j][1] = j % 255;//G        p[j][2] = i%255;//R    }}    imshow("灰度图", grayImage);    imshow("彩色图", colorImage);    waitKey(0);    return 0;

}`

“`运行程序后的灰度图和彩色图
对于计算机图像而言,都是数字,因为是8位的图像,最高像素255,这里的边长设为600*800,所以图中横向有三段多一点的小方格图,800除以255,刚好是3点多,也就印证了计算机数字图像显示图像的原理。用qq截图去看的话,也会得到RGB的值,在图像移中,也比较符合规律。

0 0
原创粉丝点击