0
我想构建一个opencv函数,它将一个IplImage图像作为参数并返回2个IplImage图像。这是可以在opencv(C++)中实现的。我更喜欢它是否使用IplImage,但我会欣赏其他选项如何编写一个opencv函数,将一个图像作为参数并返回2个图像
我想构建一个opencv函数,它将一个IplImage图像作为参数并返回2个IplImage图像。这是可以在opencv(C++)中实现的。我更喜欢它是否使用IplImage,但我会欣赏其他选项如何编写一个opencv函数,将一个图像作为参数并返回2个图像
您可以通过passing them by reference as function arguments返回几张图像。例如:
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-09 21:15:16
不知道opencv,但在java中会返回一个数组或元素,前2个元素设置为返回图像。 – tgkprog 2013-05-09 20:19:12
是的,我期望,但我是新的opencv,它有不同的语法,所以我不能这样做 – 2013-05-09 20:24:12
有很多方法可以做到这一点。通过引用获取两个“输出”参数,或者返回一个'std :: pair'。除非你有一个非常好的理由,否则你应该更喜欢'cv :: Mat'到'IplImage'。 –
Aurelius
2013-05-09 20:31:10