Итак, если вы передадите Scale_factor 1/255. | размер (640,640), насколько мне известно, каждый элемент должен рассчитываться как RGB => R = R/255. | Г= Г/255. |...
Код: Выделить всё
Value = (U8 - Mean) * scale_factor
Итак, на py.
Я попробовал умножить выходные данные blob/ ndarray * 255. и изменен на (640, 640, 3) и выглядит так, будто выходное изображение представляет собой одно изображение, содержащее 9 изображений в 3 ряда и 3 столбца в оттенках серого и немного разной насыщенности? это то, что я пробовал на стороне 255. Пример выше с тем же результатом.
Код: Выделить всё
test = cv2.dnn.blobFromImage(img, 1.0/127.5, (640, 640), (127.5, 127.5, 127.5), swapRB=True)
t1 = test * 127.5
t2 = t1 + 127.5
cv2.imwrite("./test_output.jpg", t2.reshape((640, 640, 3)))
Код: Выделить всё
subtract(images[i], mean, images[i]);
multiply(images[i], scalefactor, images[i]);
еще один вопрос: почему это становится серым масштабируется, если входные данные заполнены значением u8 rgb?
Я попробовал преобразовать 4d ndarray в соответствии с выходными данными blobFromImage, применив аналогичную формулу. но вывод был не тот.
Я ожидал, что изображение, преобразованное в ndarray из (1, 3, w, h), вычтенное по среднему значению и умноженное на масштабный коэффициент, будет таким же, как вывод blobFromImage при обратном преобразовании в (ширину, высоту, канал).
вход
выход
Подробнее здесь: https://stackoverflow.com/questions/790 ... -contain-g