gpt4 book ai didi

c++ - 将Mat中的RGB图像转换为MFC中的BYTE *

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

很抱歉把它放在这里,但是 opencv 站点已关闭或者我无法访问那里的主题。我正在 Mat 中读取 RGB 图像 并尝试使用以下函数将其转换为 BYTE* 但它没有给我确切的信息图像但扭曲了某些图像的一部分。请有人能帮我解决我弄错的地方。谢谢。

BYTE *change_to_BYTE(Mat matrix_value)
{

BYTE* v_char_new = new BYTE[matrix_value.rows * matrix_value.cols * 3]();


vector<byte> v_char;
for(int i = 0; i < matrix_value.rows; i++)
{
for(int j = 0; j < matrix_value.cols; j++)
{
v_char_new[((i*matrix_value.cols+j) * 3)+0] = (*(uchar*)((matrix_value.data+ i*matrix_value.step + j + 0)));
v_char_new[((i*matrix_value.cols+j) * 3)+1] = (*(uchar*)((matrix_value.data+ i*matrix_value.step + j +1)));
v_char_new[((i*matrix_value.cols+j) * 3)+2] = (*(uchar*)((matrix_value.data+ i*matrix_value.step + j +2)));
}
}

return v_char_new;
}

最佳答案

在以不同方式检查后,这是对我有用的方式。

  BYTE *Ctest_face_projectDlg::change_to_BYTE(Mat matrix_value)
{

BYTE* v_char_new = new BYTE[matrix_value.rows * matrix_value.cols * 3]();

for(int i = 0; i < matrix_value.rows; i++)
{
for(int j = 0; j < matrix_value.cols; j++)
{
Vec3b bgrPixel = matrix_value.at<Vec3b>(i, j);
v_char_new[((i*matrix_value.cols+j)*3)+0] = bgrPixel.val[0];
v_char_new[((i*matrix_value.cols+j)*3)+1] = bgrPixel.val[1];
v_char_new[((i*matrix_value.cols+j)*3)+2] = bgrPixel.val[2];
// do something with BGR values...
}
}
}

关于c++ - 将Mat中的RGB图像转换为MFC中的BYTE *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538003/

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