Как я могу сделать матрицу так же, как набор данных изображения MNIST.

Я пытаюсь создать векторную матрицу, которая совпадает с набором данных изображений MNIST.
Каждое изображение с веб-камеры захватывается и сохраняется в векторе. Однако созданная мной матрица отличается от набора данных MNIST. Таким образом, основной код не работает для матрицы, которую я создал.

Я думал, что, возможно, это потому, что тип пикселей отличается.
Что я заметил, так это то, что когда я искал одну матрицу из данных MNIST, она имела 15 десятичных знаков. Однако я не смог установить 15 десятичных знаков. Когда я установил изображение, чтобы быть CV_FC64. Это показывает следующее сообщение об ошибке.
«Ошибка подтверждения в cv :: cvtColor, путь к файлу C: \ file.»

Основной код работает для набора данных MNIST .. Я не уверен, что делать ..

пожалуйста посоветуй. мне.

 while (1)
{
cap >> src;

src.convertTo(src, CV_64FC1);
src = src / 256;

cvtColor(src, src_gray, CV_RGB2GRAY);
resize(src_gray, src_N, size);
testX.push_back(src_N);
}

0

Решение

cvtColor только позволяет 8U, 16U а также 32F битовые глубины. Так после тебя convertTo(..., CV_64FC1)битовая глубина 64F и утверждение неверно: https://github.com/opencv/opencv/blob/84699e0e1860a3485e3dfc12230fbded955dba13/modules/imgproc/src/color.cpp#L8676:

     CV_Assert( depth == CV_8U || depth == CV_16U || depth == CV_32F );

Если вам действительно нужен 64F, то имеет смысл сначала cvtColor а затем увеличить битовую глубину до 64F, используя convertTo,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]