[问题] 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