Модификация изображения (обрезка и удаление перекоса) в C # - PullRequest
1 голос
/ 14 апреля 2011

С помощью мобильного устройства я фотографирую плоский светлый объект на темной поверхности. (например, купон, вырезанный из газеты).

Затем изображение проходит через фильтр яркости / контраста. Если это слишком темно, жизненно важные компоненты не учитываются. Если он слишком яркий, надпись на купоне теряется.

Это изображение затем преобразуется в битовое изображение. Любой пиксель, который на 50% или более темный, преобразуется в черный, все остальное - белый. (Сделано)

У меня осталось искаженное растровое изображение (представьте себе белую трапецию внутри большего прямоугольника с черным фоном).

Мне нужно выяснить, как обрезать изображение - что, когда оно на черном фоне, легче, чем на белом фоне. Затем мне нужно отогнуть изображение, чтобы оно было прямоугольным, а не трапецеидальным, пытаясь сохранить аспект.

Конечный результат должен быть хорошо обрезанным, битональным, читаемым изображением купона.

1 Ответ

1 голос
/ 14 апреля 2011

Чтобы обрезать ваше изображение, вы можете использовать метод LockBits и сканировать все ваши пиксели, чтобы найти первый пиксель с содержимым сверху, слева, справа и снизу соответственно.Как использовать LockBits, хорошо описано здесь: http://www.bobpowell.net/lockingbits.htm

Предполагая, что ваше изображение не повернуто, и что перекос исходит от камеры, расположенной под углом к ​​столу, где фотографируется купон, вы должныиметь искаженное изображение купона, идеально вписываясь в рамки обрезанного растрового изображения.Вы также должны знать четыре угла трапеции.

«Нерассортировать» изображение не так просто, как вы думаете.Однако хорошие люди решили эту проблему, и вы, вероятно, можете портировать их код для своего собственного использования.Вот ссылка, которую я использовал для изучения этой проблемы в похожем случае некоторое время назад:

http://ryoushin.com/cmerighi/en-us/61,2007-10-29/Image_Distortion_Enhancements.aspx

У меня также есть где-то код, если вы не можете понять, чтовы найдете.

...