请教个指针有关问题
请问个指针问题!void GetThreshPic(Mat *ptrMat){Mat im *ptrMatif(im.empty()){cout Cannot load i
请问个指针问题!
void GetThreshPic(Mat *ptrMat)
{
Mat im =*ptrMat;
if(im.empty())
{
cout << "Cannot load image!" << endl;
}
cvtColor( *ptrMat, *ptrMat, CV_RGB2GRAY );
threshold( *ptrMat, *ptrMat, 125, 255,0 );
//return im;
}
int _tmain(int argc, _TCHAR* argv[])
{
cv::Mat im = cv::imread("D:\\Program Files (x86)\\CCAD\\CCAD\\splash.jpg");
//im=
GetThreshPic(&im);
为什么我*ptrMat.empty() 就不行了那?
一定要Mat im =*ptrMat; im.empty() 才可以
C++ 中不是*ptrMat 就是代表变量了吗?
[解决办法](*ptrMat).empty()
[解决办法]解引用(*)操作符的优先级比.优先级低,所以先结合后面的,再结合前面的,如果对优先级不是很熟悉的话,适当的添加括号是好事,对程序也没什么影响,增加了程序的可读性,不过,了解操作符的优先级还是有好处的
[解决办法]谁说的?
把 Mat * 改成 Mat&,然后用对象的语法。
[解决办法].的优先级比*高