赞
踩
使用OpenCV库在Delphi中创建一个灰度图像。让我解释一下:
gray_image := cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
所以,整个行的作用是创建一个与原始图像(image)大小相同的灰度图像,并将其赋值给 gray_image。这样,gray_image 就成为了一个单通道的灰度图像,可以在后续的图像处理中使用。
使用OpenCV库中的 cvCvtColor 函数将彩色图像转换为灰度图像。让我解释一下:
cvCvtColor(image, gray_image, CV_RGB2GRAY);
所以,整个行的作用是将原始彩色图像 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.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。