Почему существует существенная разница в выходном изображении при изменении параметра ddepth для оператора Собеля?

Аргументы не должны размещаться в command, поэтому задача должна выглядеть так:

{
  "command": "cmd",
  "args": ["/c", "c:\\test\\test.bat]
}

Однако, поскольку Microsoft добавила автоматическое обнаружение, следующее должно работать как well:

{
  "type": "shell",
  "command": ""c:\\test\\test.bat"
}

Подробнее см. документацию .

0
задан Suhail Gupta 19 January 2019 в 10:22
поделиться

1 ответ

Существуют две причины различия:

  • Сначала отображается дисплей. В imshow Opencv будут учитываться только значения между (0,1) для изображений с плавающей точкой и (0,255) для изображений с типом uint8. Любые значения больше 1 будут рассматриваться как 1 для плавающих изображений. Вот почему вы видите, что большинство изображений становятся белыми. Вы можете исправить это с помощью cv2.imshow("sobelx3_64", sobelx3_64/255), то есть нормализовать его в пределах (0,1) (но посмотрите на второй пункт, это не совсем правильно).
  • print(sobelx3_8[0:3,0:3]);print(sobelx3_64[0:3,0:3]). Это производит следующее. Теперь они отличаются из-за диапазона, фактическое значение оператора sobel больше 255, но тип uint8 не может уместиться в 480, поэтому opencv насытит его до 255. Аналогично для отрицательных значений.

Выход.

[[  0 200 255]
 [  0 131 255]
 [  0   0 255]]
[[   0.  200.  480.]
 [   0.  131.  425.]
 [   0.   -4.  316.]]
0
ответ дан Zaw Lin 19 January 2019 в 10:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: