تبدیل تصویر به تنسور - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل تصویر به تنسور

0 امتیاز
سلام.

من دارم از torchlib استفاده می کنم قصد دارم مدلی را inference کنم چطور تصویر opencv را به تنسور تبدیل کنم؟
سوال شده بهمن 22, 1401  بوسیله ی patmat (امتیاز 37)   2 12

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

تبدیل تصویر cv::mat به تانسور در TorchLib C++ می تواند با استفاده از کد زیر انجام شود:

#include <torch/torch.h>
#include <opencv2/opencv.hpp>

cv::Mat cv_img;
// load your cv::Mat here

torch::Tensor tensor_img = torch::from_blob(cv_img.data, {1, cv_img.rows, cv_img.cols, 3}, torch::kByte);
tensor_img = tensor_img.permute({0, 3, 1, 2});
tensor_img = tensor_img.to(torch::kFloat);
tensor_img = tensor_img.div(255.0);

 

کد بالا فرض می کند که cv::Mat در فرمت BGR است که فرمت پیش فرض استفاده شده توسط OpenCV است. اگر تصویر شما در فرمت RGB است، باید قبل از تبدیل به تنسور، یک کانال رنگی را تعویض کنید.

cv::cvtColor(cv_img, cv_img, cv::COLOR_RGB2BGR);

 

پاسخ داده شده بهمن 22, 1401 بوسیله ی farshid_siyah (امتیاز 1,463)   3 11 16
انتخاب شد شهریور 8, 1402 بوسیله ی farnoosh
...