0

我想构建一个 opencv 函数,它以一个 IplImage 图像作为参数并返回 2 个 IplImage 图像。这在opencv(c ++)中可行吗?如果它使用 IplImage,我更喜欢,但我会欣赏其他选择

4

1 回答 1

0

您可以通过引用将它们作为函数参数传递来返回多个图像。例子:

void myFunction(const cv::Mat& input_image, cv::Mat &output1, cv::Mat &output2) {
    // modify output1
    input_image.copyTo(output1);
    rectangle(output1, cv::Rect(10,10,100,100), cv::Scalar(0,0,255), 2);

    // modify output2
    cvtColor(input_image,output2,CV_RGB2GRAY); 
}

int main() {
    cv::Mat input_image = imread("sample.jpg");
    cv::Mat out1, out2;

    myFunction(input_image, out1, out2);

    // now out1 and out2 are modified by myFunction
}

例子是 cv::Mat 但你可以对 IplImage 做同样的事情。您应该使用 cv::Mat 而不是 IplImage。

于 2013-05-09T20:33:58.223 回答