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