一.代码编写过程
int main(int argc,char** argv)
{
if (argc<2)
{
printf(“使用方法:%s 图像文件名\n”, argv[0]);
return 0;
}
cv::Mat im = cv::imread(argv[1]);
if (!im.data)
{
std::cout << “打开图像” << argv[1] << “出错” << std::endl;
return 1;
}
cv::namedWindow(“image-xiaomaobin”);
cv::imshow(“image-xiaomaobin”, im);
cv::waitKey();
}
二.代码分析与思路
1.
int main(int argc,char** argv)
{
if (argc<2)
{
printf(“使用方法:%s 图像文件名\n”, argv[0]);
return 0;
}
}
int argc 是指用户在运行程序的命令行中输入的参数的个数
char** argv 是指二维字符数组或者理解成一维字符串数组。
2.
cv::Mat im = cv::imread(argv[1]);
类Mat代表一个n维密集的数字单通道或多通道阵列。它可以用来存储实值或复数向量和矩阵,灰度或彩色图 像,体素体积,向量场,点阵,张量,直方图。imread:简介从文件加载图像
函数imread从指定的文件加载一个图像并返回它。如果无法读取图像(由于缺少文件,不正确的权限,不支持或无效的格式),函数将返回一个空的矩阵(Mat:data == NULL)。
3.
if (!im.data)
{
std::cout << “打开图像” << argv[1] << “出错” << std::endl;
return 1;
}
// 显示图文件窗口
cv::namedWindow(“image-xiaomaobin”);
// 在窗口显示图文件
cv::imshow(“image-xiaomaobin”, im);
// 窗口等待按键
cv::waitKey();
}
机器视觉
最新推荐文章于 2024-06-14 15:04:49 发布