当前位置:   article > 正文

【OpenCV 基础知识 2】灰度化图片

【OpenCV 基础知识 2】灰度化图片

cvCreateImage

使用OpenCV库在Delphi中创建一个灰度图像。让我解释一下:

gray_image := cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
  • 1
  1. cvGetSize(image): 这个函数返回给定图像(在这里是image)的大小。它返回一个CvSize类型的结构体,包含图像的宽度和高度。
  2. IPL_DEPTH_8U: 这是图像的深度(bit-depth)参数。在这里,IPL_DEPTH_8U 表示8位无符号整数,即每个像素的灰度级别范围在0到255之间。
  3. 1: 这是通道数。在这里,1 表示创建一个单通道的灰度图像。
  4. cvCreateImage: 这是OpenCV库中的函数,用于创建图像。它接受三个参数:大小、深度和通道数。然后,它返回一个指向新图像的指针。

所以,整个行的作用是创建一个与原始图像(image)大小相同的灰度图像,并将其赋值给 gray_image。这样,gray_image 就成为了一个单通道的灰度图像,可以在后续的图像处理中使用。

cvCvtColor

使用OpenCV库中的 cvCvtColor 函数将彩色图像转换为灰度图像。让我解释一下:

cvCvtColor(image, gray_image, CV_RGB2GRAY);
  • 1
  1. image: 这是原始的彩色图像,即要进行颜色转换的图像。
  2. gray_image: 这是目标图像,即将结果存储到的图像。在这里,它是先前创建的灰度图像。
  3. CV_RGB2GRAY: 这是颜色转换的标志。在这里,CV_RGB2GRAY 表示从RGB(彩色)到灰度的颜色转换。这将把彩色图像中的每个像素转换为相应的灰度值。

所以,整个行的作用是将原始彩色图像 image 转换为灰度图像,并将结果存储在 gray_image 中。这是常见的图像处理操作,将彩色图像转换为灰度图像通常用于简化图像处理流程,降低计算复杂性。

完整示例代码

program cv_CvtColor;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils,
  ocv.highgui_c,
  ocv.core_c,
  ocv.core.types_c,
  ocv.imgproc_c,
  ocv.imgproc.types_c,
  uResourcePaths;

const
  filename = cResourceMedia + 'opencv_logo_with_text.png';
  filename_gray = cResourceMedia + 'opencv_logo_with_text_gray.png';

var
  image: pIplImage = nil;
  gray_image: pIplImage = nil;

begin
  try
    image := cvLoadImage(filename, 1);
    //创建一个纯灰度图片
    gray_image := cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
    //把image图像灰度化存到gray_image
    cvCvtColor(image, gray_image, CV_RGB2GRAY);
    //保存gray_image
    cvSaveImage(filename_gray, gray_image);
    cvNamedWindow(filename, CV_WINDOW_AUTOSIZE);
    cvNamedWindow('Gray image', CV_WINDOW_AUTOSIZE);
    cvShowImage(filename, image);
    cvShowImage('Gray image', gray_image);
    cvWaitKey(0);
    cvReleaseImage(image);
    cvReleaseImage(gray_image);
    cvDestroyAllWindows;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/611579
推荐阅读
相关标签
  

闽ICP备14008679号