opencv 入门基础

£神魔★判官ぃ 2022-06-17 02:46 372阅读 0赞

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

include

include

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

  1. Mat grayImage (600, 800, CV_8UC1);
  2. Mat colorImage(600, 800, CV_8UC3);
  3. for (int i = 0; i < grayImage.rows; i++)
  4. {
  5. uchar *p = grayImage.ptr<uchar>(i);
  6. for (int j = 0; j < grayImage.cols; j++)
  7. p[j] = j % 255; //
  8. }
  9. for (int i = 0; i < colorImage.rows; i++)
  10. {
  11. Vec3b*p = colorImage.ptr<Vec3b>(i);//获取第i行首像素指针
  12. for (int j = 0; j < colorImage.cols; j++)
  13. {
  14. p[j][0] = j % 255;//B
  15. p[j][1] = j % 255;//G
  16. p[j][2] = i%255;//R
  17. }
  18. }
  19. imshow("灰度图", grayImage);
  20. imshow("彩色图", colorImage);
  21. waitKey(0);
  22. return 0;

}`

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

发表评论

表情:
评论列表 (有 0 条评论,372人围观)

还没有评论,来说两句吧...

相关阅读