Ищу способ конвертации Bitmap в Mat (OpenCvSharp) (Решено)

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Стоит задача структуру Bitmap/Image прокинуть в Mat (OpenCvSharp) без сохранения на жесткий диск.
Сейчас делаю так
C#:
HtmlElement screen = instance.ActiveTab.FindElementByXPath("//xpath", 0);
screen.DrawPartAsBitmap(left, top, Width, Height, false).Save(path);
Mat screen_Mat = new Mat(path, ImreadModes.Grayscale);
Так то работает, хотелось бы без сохранения на диск, все в памяти сделать.

из dll подключен OpenCvSharp только. может я просто не все подключил и поэтому у меня нет нужных функций.... может кто сталкивался уже с таким ?


Решение тут
 
Последнее редактирование:
  • Спасибо
Реакции: djaga

p-sergei

Client
Регистрация
20.12.2016
Сообщения
543
Благодарностей
263
Баллы
63
может кто сталкивался уже с таким ?
Я особо не знаток, поэтому наверно на какие-то доп. вопросы не отвечу :D.
Я через вот этот метод прокидывал Image до Mat, но перед этим Bitmap до Image.

94517
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Я особо не знаток, поэтому наверно на какие-то доп. вопросы не отвечу :D.
Я через вот этот метод прокидывал Image до Mat, но перед этим Bitmap до Image.
Не проблема в Image закинуть. Покажешь код BlobFromImage ?
 

p-sergei

Client
Регистрация
20.12.2016
Сообщения
543
Благодарностей
263
Баллы
63
Не проблема в Image закинуть. Покажешь код BlobFromImage ?
Bitmap в Image я вот так кидал
C#:
 Image<Bgr, byte> img = bmp.ToImage<Bgr, byte>().Resize(320, 320, Inter.Cubic);
А Image в Mat вот так
C#:
Mat input = DnnInvoke.BlobFromImage(img, 1 / 255.0, swapRB: true);
 
  • Спасибо
Реакции: Phoenix78

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Bitmap в Image я вот так кидал
C#:
 Image<Bgr, byte> img = bmp.ToImage<Bgr, byte>().Resize(320, 320, Inter.Cubic);
А Image в Mat вот так
C#:
Mat input = DnnInvoke.BlobFromImage(img, 1 / 255.0, swapRB: true);
у меня же нет твоего класса DnnInvoke.... как бы исходный код нужен... хотя бы BlobFromImage ;-)
 

p-sergei

Client
Регистрация
20.12.2016
Сообщения
543
Благодарностей
263
Баллы
63

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
поверь у меня его тоже нет, это класс библиотеки которая светилась на первом скрине
ага.. вроде допер.. у меня нет нужного функционала. надо Dnn подрубить. Вот в инете пример нашел, щас буду рыть.
94520
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Нашел решение.
нужна дополнительная dll OpenCvSharp.Extensions

94564

C#:
using OpenCvSharp;
using OpenCvSharp.Extensions;   

HtmlElement screen = instance.ActiveTab.FindElementByXPath("//xpath", 0);
Mat screen_Mat = BitmapConverter.ToMat(screen.DrawPartAsBitmap(left, top, Width, Height, false));
 
  • Спасибо
Реакции: djaga и p-sergei

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)