gpt4 book ai didi

c++ - OpenCV:将 3 channel 图像转换为 4 channel

转载 作者:IT老高 更新时间:2023-10-28 21:39:13 26 4
gpt4 key购买 nike

我正在尝试将 3 channel 图像更改为 4 channel ,如下所示:

cv::VideoCapture video;
video.open("sample.avi");
cv::Mat source;
cv::Mat newSrc;
int from_to = { 0,0, 1,1, 2,2, 3,3 };
for ( int i = 0; i < 1000; i ++ )
{
video >> source;
cv::mixChannels ( source, 2, newSrc, 1, from_to, 4 );
}

然后我得到了

too many input arguments in function call

对于“mixChannels”行。此外,我不确定我是否为我的目标正确地给出了论据。有人能帮我吗?谢谢你。

最佳答案

您可以将 3 channel 图像转换为 4 channel ,如下所示:

cv::Mat source = cv::imread(path);

cv::Mat newSrc(source.size(), CV_MAKE_TYPE(source.depth(), 4));

int from_to[] = { 0,0, 1,1, 2,2, 2,3 };

cv::mixChannels(&source,1,&newSrc,1,from_to,4);

这样, channel 4 将成为 channel 3 的拷贝。通过在 from_to 列表中使用负数,输出 channel 被零填充。例如:

int from_to[] = { 0,0, 1,1, 2,2, -1,3 };

关于c++ - OpenCV:将 3 channel 图像转换为 4 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451936/

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