2013-05-09 49 views
0

我想構建一個opencv函數,它將一個IplImage圖像作爲參數並返回2個IplImage圖像。這是可以在opencv(C++)中實現的。我更喜歡它是否使用IplImage,但我會欣賞其他選項如何編寫一個opencv函數,將一個圖像作爲參數並返回2個圖像

+0

不知道opencv,但在java中會返回一個數組或元素,前2個元素設置爲返回圖像。 – tgkprog 2013-05-09 20:19:12

+0

是的,我期望,但我是新的opencv,它有不同的語法,所以我不能這樣做 – 2013-05-09 20:24:12

+0

有很多方法可以做到這一點。通過引用獲取兩個「輸出」參數,或者返回一個'std :: pair '。除非你有一個非常好的理由,否則你應該更喜歡'cv :: Mat'到'IplImage'。 – Aurelius 2013-05-09 20:31:10

回答

0

您可以通過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。

+1

謝謝了很多...多數民衆贊成我正在尋找 – 2013-05-09 21:15:16

相關問題