要将一个 3 通道的 cv::Mat
转换为单通道,可以使用 OpenCV 中的 cv::cvtColor
函数。下面是一个示例代码,演示如何实现这一点:
#include <opencv2/opencv.hpp>
int main() {
// 读取一张彩色图片 (3通道)
cv::Mat img = cv::imread("path_to_your_image.jpg");
// 检查图片是否成功加载
if (img.empty()) {
std::cerr << "Error: Unable to open image!" << std::endl;
return -1;
}
// 创建一个单通道图像
cv::Mat grayImg;
// 将3通道图像转换为单通道(灰度图)
cv::cvtColor(img, grayImg, cv::COLOR_BGR2GRAY);
// 显示结果
cv::imshow("Original Image", img);
cv::imshow("Gray Image", grayImg);
// 等待按键
cv::waitKey(0);
return 0;
}
说明:
- 使用
cv::imread
函数读取输入图像。 - 使用
cv::cvtColor
函数进行颜色空间转换,其中cv::COLOR_BGR2GRAY
表示从 BGR 到灰度的转换。 - 最后通过
cv::imshow
显示原始和转换后的图像。
记得替换 "path_to_your_image.jpg"
为你实际的图片路径。
内容由零声教学AI助手提供,问题来源于学员提问