Новое:Talanto осенью: фильтры с числами, отклик по шагам и каталог компаний

+1 199новых вакансий за сутки·93 838вакансий открыто сейчас·Новое:Talanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 273
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 409 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 222
  • Облачные технологии14 171
  • QA вакансии3 456
  • Backend вакансии2 114
  • Инженер данных1 801
  • Продакт-менеджер1 247

Разработка

  • Android1 858
  • iOS1 698
  • Fullstack вакансии997
  • AI вакансии955
  • Frontend вакансии755
  • Mobile вакансии44

По стеку

  • Go8 752
  • Java6 593
  • Node.js2 036
  • .NET1 739
  • Kotlin1 618
  • Rust1 472
  • C#717
  • PHP690
  • C++579

DevOps и инфраструктура

  • Kubernetes7 787
  • DevOps вакансии6 095
  • Linux-инфраструктура5 508
  • Terraform / IaC4 287
  • CI/CD3 272
  • Мониторинг и Observability1 792
  • SRE566
  • Кибербезопасность454

Аналитика и данные

  • Data Scientist1 138
  • Бизнес-аналитик921
  • Аналитик данных858
  • Системный аналитик154

Другие направления

  • Проджект-менеджер624
  • UI/UX дизайн149
  • Ручное тестирование14

По регионам

  • Вакансии в США44 166
  • Вакансии в Европе24 014
  • Вакансии в Канаде4 535
  • Работа в России3 867

По формату

  • Удалённые вакансии75 005
  • Релокация в США44 166
  • Гибридная работа12 485
  • Офисная работа7 090

По уровню

  • Senior вакансии42 643
  • Middle вакансии20 960
  • Junior вакансии6 708

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis38 вакансий
  • Spotify37 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме OpenCVВсе вопросы
OpenCVJuniorКодинг

Что такое пороговая обработка (thresholding) в OpenCV и каковы её типы (binary, Otsu, adaptive)?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Thresholding преобразует градации серого в бинарное изображение. cv2.threshold() реализует глобальные методы (binary, Otsu), cv2.adaptiveThreshold() — локальные (mean, Gaussian) для неравномерного освещения.

Пример кода

import cv2
import numpy as np

img = cv2.imread("document.png", cv2.IMREAD_GRAYSCALE)
if img is None:
    raise FileNotFoundError("document.png not found")

# 1. Простой бинарный порог
_, binary = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
cv2.imwrite("out_binary.png", binary)

# 2. Метод Оцу — автоматический порог
otsu_thresh, otsu = cv2.threshold(
    img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU
)
print(f"Оцу выбрал порог: {otsu_thresh}")
cv2.imwrite("out_otsu.png", otsu)

# 3. Адаптивный порог (Mean)
adaptive_mean = cv2.adaptiveThreshold(
    img,
    255,
    cv2.ADAPTIVE_THRESH_MEAN_C,
    cv2.THRESH_BINARY,
    blockSize=11,  # нечётное число, > 1
    C=2            # вычитаемая константа
)
cv2.imwrite("out_adaptive_mean.png", adaptive_mean)

# 4. Адаптивный порог (Gaussian) — рекомендуется
adaptive_gauss = cv2.adaptiveThreshold(
    img,
    255,
    cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
    cv2.THRESH_BINARY,
    blockSize=11,
    C=2
)
cv2.imwrite("out_adaptive_gauss.png", adaptive_gauss)

# Перед Оцу полезно размыть изображение:
blurred = cv2.GaussianBlur(img, (5, 5), 0)
_, otsu_blur = cv2.threshold(
    blurred, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU
)
cv2.imwrite("out_otsu_blur.png", otsu_blur)

Что такое пороговая обработка

Пороговая обработка (thresholding) — преобразование изображения в оттенках серого в бинарное (чёрно-белое) изображение путём сравнения каждого пикселя с пороговым значением. Используется для выделения объектов, подготовки масок, OCR и сегментации. В OpenCV за это отвечают две функции: cv2.threshold() и cv2.adaptiveThreshold().

Глобальные методы — cv2.threshold()

Единственный порог применяется ко всему изображению:

  • cv2.THRESH_BINARY — пиксель > thresh → maxval, иначе 0.
  • cv2.THRESH_BINARY_INV — инверсия предыдущего.
  • cv2.THRESH_TRUNC — пиксель > thresh → thresh, иначе оставить.
  • cv2.THRESH_TOZERO — пиксель ≤ thresh → 0, иначе оставить.
  • cv2.THRESH_OTSU — автоматический подбор порога методом Оцу (межклассовая дисперсия максимальна). Передаётся как флаг совместно с другим: cv2.THRESH_BINARY + cv2.THRESH_OTSU. Значение thresh в этом случае игнорируется — OpenCV вычисляет его сам.

Адаптивный порог — cv2.adaptiveThreshold()

Для каждого пикселя порог вычисляется локально в окне blockSize × blockSize. Решает проблему неравномерного освещения:

  • cv2.ADAPTIVE_THRESH_MEAN_C — порог = среднее окна минус константа C.
  • cv2.ADAPTIVE_THRESH_GAUSSIAN_C — порог = взвешенное среднее (гауссово ядро) минус C. Лучше подавляет шум.

Когда что использовать

  • Равномерное освещение, контрастный объект → THRESH_BINARY с ручным порогом или THRESH_OTSU.
  • Документы, сканы с тенями → ADAPTIVE_THRESH_GAUSSIAN_C.
  • Биомедицинские изображения с переменным фоном → адаптивный порог с подобранным blockSize.
  • Быстрое прототипирование → Оцу, т.к. не требует ручного подбора порога.

Подводные камни

  • Оцу плохо работает на многомодальных гистограммах — если объектов несколько типов яркости, метод даёт субоптимальный порог.
  • blockSize должен быть нечётным и >1 — при чётном значении OpenCV выбросит исключение.
  • Константа C может быть отрицательной — если фон ярче объекта, C со знаком минус сдвигает порог вверх.
  • Шум усиливается адаптивным порогом — без предварительного размытия (GaussianBlur) адаптивный метод выделяет каждую шумовую крапинку.
  • Изображение должно быть grayscale — передача BGR-изображения в threshold даёт либо ошибку, либо неожиданный результат.
  • THRESH_OTSU игнорирует переданный порог — разработчики иногда передают 127 и удивляются, почему результат другой; правильно передавать 0.
  • Малый blockSize даёт шум, большой — теряет детали — выбирайте blockSize ≈ размер наименьшей значимой детали изображения.
  • Адаптивный порог медленнее глобального — при обработке видео в реальном времени профилируйте; иногда быстрее обесцветить + Оцу.

Частые вопросы на собеседовании

  • Что такое OpenCV и каковы его основные области применения?
  • Как преобразовать цветное изображение в оттенки серого в OpenCV?
  • В каких data/AI-задачах OpenCV даёт реальный выигрыш, а где лучше выбрать другой инструмент или более простой pipeline?
  • Как OpenCV представляет цветные изображения и что такое порядок BGR vs RGB?

Типичные ошибки

  • Объяснять thresholding methods только синтаксисом без shape, dtype, состояния или режима выполнения.
  • Игнорировать leakage, воспроизводимость, пустые входы и скрытые копии данных.
  • Не проверять production-симптомы: latency, память, ретраи, дрейф качества и несовпадение версий.

Что проверяет интервьюер

  • Может ли связать thresholding methods с реальным контрактом входов и выходов.
  • Упоминает ли тесты, метрики, reproducibility и диагностику ошибок.
  • Видит ли различие между demo-кодом в ноутбуке и production-пайплайном.

Как вы знаете этот вопрос?

Проверить себя по теме OpenCV →

Источники

  • https://docs.opencv.org/4.x/d7/d4d/tutorial_py_thresholding.html
Следующий вопрос→Что такое OpenCV и каковы его основные области применения?

Связанные темы

OpenCVdata-aidata-processingperformance-debugging