[問題] call by reference

作者: makuebx (泰勞)   2014-08-30 16:21:35
#include "camera.h"
#include "imgproc.h"
public:
void RGB2Gray(Mat &src) {
cv::cvtColor(src, src, CV_RGB2GRAY);
mImage_gray = src;
};
void Binary(Mat &src) {
cv::threshold(src, src, 0, 255, cv::THRESH_BINARY | cv::THRESH_OTSU);
mImage_binary = src;
};
public:
Mat mImage_raw;
Mat mImage_gray;
Mat mImage_binary;
};
void recognition(cv::Mat &);
Imgproc *mImgproc = new Imgproc();
int main() {
cv::Mat img;
mImgproc->mImage_raw = img;
cv::namedWindow("Output", 1);
recognition(img);
cv::imshow("Output", img);
作者: Feis (永遠睡不著 @@)   2014-08-30 16:24:00
這 code 一定有甚麼誤會.
作者: makuebx (泰勞)   2014-08-30 16:30:00
... 開寫了個測試也是跑 b=2; c=3, 可是我用這個想法去寫別的程式 結果卻不是我要的 怪怪
作者: Feis (永遠睡不著 @@)   2014-08-30 16:39:00
建議你先給個真的能跑的 code. 我覺得你肯定誤會了些甚麼
作者: makuebx (泰勞)   2014-08-30 17:04:00
補充:RGB2Gray和Binary兩個執行的輸入/輸出都是src
作者: Feis (永遠睡不著 @@)   2014-08-30 17:15:00
是 OpenCV 嗎? 你誤會了 Mat::operator=, 找一下 Mat::clone這邊跟是不是 reference 沒有關係. 是 Mat 的用法錯誤
作者: makuebx (泰勞)   2014-08-30 17:45:00
是OpenCV沒錯 感謝你的回答 總算有個方向了

Links booklink

Contact Us: admin [ a t ] ucptt.com