``` imgOriginal```Mat imgOriginal = imread("D:\\Pictures\\OIP - C.jpg");
时间: 2024-06-22 20:02:34 浏览: 4
`imgOriginal` 是一个在 OpenCV(开源计算机视觉库)中常用的变量名,通常用于存储从文件中读取的图像数据。在给定的代码片段中,`imread` 函数被用来从指定的路径 "D:\\Pictures\\OIP - C.jpg" 读取一张图片,并将其赋值给 `Mat` 类型的变量 `imgOriginal`。`Mat` 是 OpenCV 中用于表示图像矩阵的数据结构。
具体来说:
- `imread` 是一个函数,负责将图片文件转换为 `Mat` 对象。
- `"D:\\Pictures\\OIP - C.jpg"` 是图像文件的路径,这是一张 JPEG 格式的图片。
- 如果读取成功,`imgOriginal` 就会保存图像的像素数据和元数据。
相关问题
Ubuntu 编译 arm32 opencv cv::Mat image = cv::imread("image.jpg");读取不到图片
如果在 Ubuntu 上使用 ARM32 架构编译 OpenCV,并且在读取图片时遇到问题,可能是由于缺少相关的图像 I/O 库或者缺少图片文件。
首先,确保已经安装了图像 I/O 相关的依赖库。可以使用以下命令进行安装:
```
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
```
接下来,确保你的图片文件 "image.jpg" 存在于当前工作目录中。你可以使用以下命令检查文件是否存在:
```
ls image.jpg
```
如果文件不存在,请确保你将图片文件放在正确的位置,并使用正确的文件名。
如果文件存在并且依赖库也已经安装,但仍然无法读取图片,可能是由于其他原因导致的。你可以尝试将图片路径改为绝对路径,或者尝试使用不同的图片进行测试。
另外,还可以检查图片文件是否可读取,以及查看 OpenCV 编译过程中是否有任何错误或警告信息。
如果问题仍然存在,请提供更多细节或错误信息,以便我能够更好地帮助你解决问题。
c++ 代码实现:下面说明obj.seg是yolov8预测出来的mask图,要求将obj.seg 上采样之后再渲染到原图上 cv::Mat image = cv::imread("inference/yq.jpg"); auto yolo = yolo::load("/home/zhangyu/tensorrt_code/test/1.18-integrate-full-yolov5/workspace/last.transd.trtmodel", yolo::Type::V8Seg); if (yolo == nullptr) return; auto objs = yolo->forward(cvimg(image)); int i = 0; for (auto &obj : objs) { uint8_t b, g, r; tie(b, g, r) = yolo::random_color(obj.class_label); cv::rectangle(image, cv::Point(obj.left, obj.top), cv::Point(obj.right, obj.bottom), cv::Scalar(b, g, r), 5); auto name = cocolabels[obj.class_label]; auto caption = cv::format("%s %.2f", name, obj.confidence); int width = cv::getTextSize(caption, 0, 1, 2, nullptr).width + 10; cv::rectangle(image, cv::Point(obj.left - 3, obj.top - 33), cv::Point(obj.left + width, obj.top), cv::Scalar(b, g, r), -1); cv::putText(image, caption, cv::Point(obj.left, obj.top - 5), 0, 1, cv::Scalar::all(0), 2, 16); if (obj.seg) { // cv::imwrite(cv::format("%d_mask.jpg", i), // cv::Mat(obj.seg->height, obj.seg->width, CV_8U, obj.seg->data)); i++; } } printf("Save result to Result.jpg, %d objects\n", (int)objs.size()); cv::imwrite("Result.jpg", image); }
可以使用cv::resize函数对obj.seg进行上采样,然后使用cv::addWeighted函数将上采样后的mask图与原图叠加在一起,实现渲染。代码如下:
```
cv::Mat image = cv::imread("inference/yq.jpg");
auto yolo = yolo::load("/home/zhangyu/tensorrt_code/test/1.18-integrate-full-yolov5/workspace/last.transd.trtmodel", yolo::Type::V8Seg);
if (yolo == nullptr) return;
auto objs = yolo->forward(cvimg(image));
int i = 0;
for (auto &obj : objs) {
uint8_t b, g, r;
tie(b, g, r) = yolo::random_color(obj.class_label);
cv::rectangle(image, cv::Point(obj.left, obj.top), cv::Point(obj.right, obj.bottom),
cv::Scalar(b, g, r), 5);
auto name = cocolabels[obj.class_label];
auto caption = cv::format("%s %.2f", name, obj.confidence);
int width = cv::getTextSize(caption, 0, 1, 2, nullptr).width + 10;
cv::rectangle(image, cv::Point(obj.left - 3, obj.top - 33),
cv::Point(obj.left + width, obj.top), cv::Scalar(b, g, r), -1);
cv::putText(image, caption, cv::Point(obj.left, obj.top - 5), 0, 1, cv::Scalar::all(0), 2, 16);
if (obj.seg) {
// 上采样
cv::Mat seg(obj.seg->height, obj.seg->width, CV_8U, obj.seg->data);
cv::resize(seg, seg, image.size(), cv::INTER_LINEAR);
// 颜色映射
cv::Mat color_map;
cv::applyColorMap(seg, color_map, cv::COLORMAP_JET);
// 叠加
cv::addWeighted(color_map, 0.5, image, 0.5, 0, image);
// cv::imwrite(cv::format("%d_mask.jpg", i),
// cv::Mat(obj.seg->height, obj.seg->width, CV_8U, obj.seg->data));
i++;
}
}
printf("Save result to Result.jpg, %d objects\n", (int)objs.size());
cv::imwrite("Result.jpg", image);
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)