gpt4 book ai didi

c++ - Opencv 2 Mat- 运行时错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:49 25 4
gpt4 key购买 nike

我从图像处理的基础知识开始,我正在尝试使用平均将 RGB 图像转换为灰度图像。

我的代码是

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>

#include<iostream>

using namespace cv;

int main()
{

Mat image = imread("a.jpg");
namedWindow("Original ");
namedWindow("Grey");
imshow("Original", image);
Mat grey;
std::cout << "hello\n";
for (int i = 0; i < image.rows; i++)
{
for (int j = 0; j < image.cols; j++)
{
grey.at<Vec3b>(i, j) = (image.at<Vec3b>(i, j)[0] + image.at<Vec3b>(i, j)[1] + image.at<Vec3b>(i, j)[2]);
}
}
imshow("Grey", grey);
return 0;

}`

我认为 Mat Gray 在访问 for 循环内的元素时存在一些问题。

最佳答案

你需要初始化你的grey,

Mat grey(image.rows, image.cols, CV_8UC1);

然后,在处理过程中,

    for (int j = 0; j < image.cols; j++)
{
grey.at<Vec3b>(i, j) = ((image.at<Vec3b>(i, j)[0] + image.at<Vec3b>(i, j)[1] + image.at<Vec3b>(i, j)[2]))/3;
}

/3 将为您提供真实 灰度值。

HTH

关于c++ - Opencv 2 Mat- 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23779240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com