初略看代码,已经声明过变量,依然出现未声明的标识符错误
if (depth == 8) {
cv::Mat img(height, width, CV_8UC1); //无符号
}
else {
cv::Mat img(height, width, CV_16UC1); //无符号
}
std::cout << img.rows;
问题出在if语句中,其实这只是一个临时变量,在出了if语句就不存在了
解决方式:在if语句外声明,在if语句内初始化
cv::Mat img;
if (depth == 8) {
img.create(height, width, CV_8UC1); //无符号
}
else {
img.create(height, width, CV_16UC1); //无符号
}
std::cout << img.rows;
本文解决了C++编程中因变量作用域导致的未声明标识符错误问题,通过调整变量声明位置并使用cv::Mat对象的create方法进行资源分配。





