В настоящее время я ищу довольно быстрый и разумно точный алгоритм в С#/. NET, чтобы сделать эти шаги в коде:
- Загрузите изображение в память.
- Начиная с цвета в позиции (0,0), найдите незанятое пространство.
- Отбросьте это ненужное пространство.
Я проиллюстрировал, чего я хочу достичь:
То, что я могу себе представить, - это получить цвет пикселя в (0,0), а затем сделать несколько строк unsafe
по очереди/по столбцу, проходящим через все пиксели, до тех пор, пока я не встречу пиксель с другим цвет, затем отрезать границу.
Я просто боюсь, что это действительно очень медленно.
Итак, мой вопрос:
Знаете ли вы о каких-либо быстрых алгоритмах (в идеале без каких-либо сторонних библиотек), чтобы вырезать "пустые" границы из образа/растрового изображения в памяти?
Боковое примечание. Алгоритм должен быть "разумным, точным", а не на 100% точным. Некоторое терпение, подобное одной линии слишком много или слишком мало обрезанных, будет в порядке.
Дополнение 1:
Я только что завершил реализацию моего алгоритма грубой силы самым простым способом. Посмотрите код на Pastebin.com.