dnmxlsm Ответов: 2

C# emgu.cv. matrix< float> to int


Любой желающий может помочь мне с Emgu.Cv. Matrix< float> to int, когда я запускаю коды без преобразования;

Argument 1: cannot convert from 'Emgu.CV.Matrix' to 'int'

Когда я пытаюсь Convert.ToInt32(rsmmatrixtanimlayici)

Argument 2: An unhandled exception of type 'System.InvalidCastException' occurred in mscorlib.dll<br />
<br />
Additional information: 'Emgu.CV.Matrix`1[System.Single]' türündeki nesne 'System.IConvertible' türüne atılamadı.


eslestirici = new BruteForceMatcher<Single>(DistanceType.L2);
           eslestirici.Add(aranacakrsmmatrixtanimlayici);
           matrixtanimlayiciindeksleri = new Matrix<int>(rsmmatrixtanimlayici.Rows, enyakinkomsu);
           matrixuzaklik = new Matrix<Single>(Convert.ToInt32(rsmmatrixtanimlayici), enyakinkomsu);
           eslestirici.KnnMatch(rsmmatrixtanimlayici, matrixtanimlayiciindeksleri, matrixuzaklik, enyakinkomsu, null);


[Скриншот1]

matrixuzaklik is Single matrixuzaklik = новая матрица & lt;single> (rsmmatrixtanimlayici, enyakinkomsu);

[Скриншот2]

Что я уже пробовал:

я пытался обратиться.ToInt32(rsmmatrixtanimlayici) это не работает.

2 Ответов

Рейтинг:
5

dnmxlsm

matrixuzaklik = new Matrix<single>(rsmmatrixtanimlayici.Rows, enyakinkomsu);


Рейтинг:
1

Afzaal Ahmad Zeeshan

Матрица - это двумерная сущность в библиотеке Emgu CV, в то время как вы пытаетесь привести его к одному объекту сущности. Это проблема №1. Во-вторых, любой объект, который используется под Convert.ToType() функция должна реализовывать IConvertible интерфейс (таким образом, ошибка, которая была показана вам).

Есть два способа сделать это, прежде всего получить доступ к данным из самой матрицы,

int value = rsmmatrixtanimlayici[0]; // Is the type int, or single, or float?

Во-вторых, вы можете использовать любой встроенный помощник, который может сделать это за вас, даже если вам потребуется использовать целочисленный массив (int[] нет int) для размещения данных в этой матрице.

Опять же, все зависит от глубины матрицы, она тоже может быть трехмерной, например, в случае цветного изображения.

IConvertible Интерфейс (Система)[^]
c# - работа с матрицей в emgu cv - переполнение стека[^]


dnmxlsm

Матрица & lt;single & gt; rsmmatrixtanimlayici;

так что он одинок