зум / резкость изображения в opencv - PullRequest
1 голос
/ 09 марта 2011

Когда я открываю изображение с серым текстом на черном фоне в любом программном обеспечении для редактирования изображений и увеличиваю его, я получаю «идеальный пиксель», масштабированный буквами.

как я могу получить то же самое с opencv??

Я попытался сделать это с помощью cv :: resize, но это дает очень размытые / нерезкие результаты.

на примечании, и я, вероятно, ошибаюсь, но мне кажется, что все изображения имеют тенденциюстать немного размытым / нерезким с opencv?

заранее спасибо!

1 Ответ

8 голосов
/ 09 марта 2011

Из документов видно, что для cv::resize() доступно несколько различных методов интерполяции:

INTER_NEAREST интерполяция ближайшего соседа
INTER_LINEAR билинейная интерполяция (используется по умолчанию)
INTER_AREA повторная выборка с использованием отношения площади пикселя.Это может быть предпочтительный метод для
прореживания изображений, поскольку он дает результаты без муаров.Но когда изображение увеличено, оно
похоже на INTER_NEAREST метод
INTER_CUBIC бикубическая интерполяция по окрестности 4x4 пикселей INTER_LANCZOS4 интерполяция Ланцоша по 8x8окрестность пикселя

Метод билинейной интерполяции, который используется по умолчанию, пытается сгладить повторяющееся изображение, "вычисляя" значения промежуточных пикселей.Для ваших требований используйте метод ближайшего соседа ( INTER_NEAREST ).Он просто выбирает значение пикселя, ближайшее к новой позиции пикселя.

Для краткого обзора общих методов интерполяции взгляните на wikipedia .

...