大家好,欢迎大家学习OpenCV4.8 开发实战专栏,长期更新,不断分享源码。
专栏代码全部基于C++ 与Python双语演示,专栏答疑群 请联系微信 OpenCVXueTang_Asst
本文关键知识点:
-
色彩空间转换函数- cvtColor
COLOR_BGR2GRAY = 6 彩色到灰度
COLOR_GRAY2BGR = 8 灰度到彩色
COLOR_BGR2HSV = 40 BGR到HSV
COLOR_HSV2BGR = 54 HSV到 BGR -
图像保存 - imwrite
第一个参数是图像保存路径
第二个参数是图像内存对象
OpenCV4中 cvtColor 和 imwrite 是两个常用的函数,但它们的功能和用途是不同的。
cvtColor
cvtColor
函数用于在图像的不同颜色空间之间进行转换。颜色空间是描述颜色的数学模型,常见的颜色空间包括RGB(红绿蓝)、HSV(色调、饱和度、亮度)、灰度等。cvtColor
函数允许你将图像从一个颜色空间转换到另一个颜色空间,这在图像处理中非常有用,比如在进行颜色过滤、边缘检测等操作时。
函数原型通常如下(以Python为例):
dst = cv2.cvtColor(src, code[, dstCn[, dst]])
src
:输入图像,即要进行颜色空间转换的图像。code
:转换代码,指定了转换的类型,比如从BGR转换到灰度图(cv2.COLOR_BGR2GRAY
),从BGR转换到HSV(cv2.COLOR_BGR2HSV
)等。dstCn
(可选):目标图像的通道数;如果参数是0,则通道数自动从src
和code
中推导出来。dst
(可选):输出图像,与src
具有相同的大小和深度。
imwrite
imwrite
函数用于将图像保存到文件系统中。这个函数接受一个文件名和一个图像数组作为输入,并将图像数组保存到指定的文件中。这个函数非常适合于将处理后的图像保存到硬盘上,以便后续使用或展示。
函数原型通常如下(以Python为例):
ret = cv2.imwrite(filename, img[, params])
filename
:要写入的文件名,包括文件扩展名(如.jpg
,.png
等),决定了图像的保存格式。img
:要保存的图像。params
(可选):对于JPEG,它可以是表示图像质量的整数(范围从0到100);对于PNG,它可以是压缩级别(范围从0到9)。
示例
假设你有一个BGR格式的图像,并希望将其转换为灰度图,然后保存为PNG文件:
import cv2
# 读取图像
img = cv2.imread('input.jpg')
# 将BGR图像转换为灰度图
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 保存灰度图
cv2.imwrite('output.png', gray_img)
在这个例子中,cvtColor
函数用于将图像从BGR颜色空间转换为灰度颜色空间,而imwrite
函数则用于将转换后的灰度图像保存到文件系统中。
演示代码
#include <opencv2/opencv.hpp>
#include
using namespace cv;
using namespace std;
int main(int artc, char** argv) {
Mat src = imread(“D:/vcprojects/images/test.png”);
if (src.empty()) {
printf(“could not load image…\n”);
return -1;
}
namedWindow(“input”, WINDOW_AUTOSIZE);
imshow(“input”, src);
Mat gray;
cvtColor(src, gray, COLOR_BGR2GRAY);
imwrite("D:/gray.png", gray);
waitKey(0);
return 0;
}
python 代码演示
import cv2 as cv
src = cv.imread("D:/vcprojects/images/test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
cv.imshow("gray", gray)
cv.waitKey(0)
cv.destroyAllWindows()
结束语
学习贵在坚持,学习OpenCV贵在每一天的代码练习,原理跟基本的函数解释,相关知识,后续更新边学边理解,搞技术永远要坚持做长期主义者!我们一起努力!!!
专栏答疑群 请联系微信 OpenCVXueTang_Asst