Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6

Разбить изображение на области

28.05.2011, 23:55. Показов 4266. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть: имеется битмап, на котором есть пять колонок с текстом. Колонки идут последовательно, но расположены как слева-направо, так и сверху-вниз друг под другом. Между колонками - пробелы толщиной пикселей тридцать. Изображение бинаризованное.
Надо каким-либо образом отделить колонки друг от друга и переслать в разные пикчербоксы на другой форме.
Как я понимаю, колонки следует отделить друг от друга, исходя из пробелов, так как они рамок не имеют.
Как можно реализовать поиск этих пробелов и последующее разделение?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2011, 23:55
Ответы с готовыми решениями:

Как разбить изображение на абзацы?
Есть словарь 1400 страниц, в каждой странице до 8(!) абзацев. Очень нужно разбить на абзацы программой. 1-й шаг: из DjView перенести в...

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

Разбить изображение на области
Имеется изображение (например 480x480 px). Нужно разбить все изображение на области(квадраты, к примеру 5x5 px). Цвет каждой области...

9
 Аватар для Oxygen
55 / 44 / 5
Регистрация: 29.07.2009
Сообщений: 159
29.05.2011, 09:56
Когда-то я тоже задавался таким вопросом и вот что накодил:
C#
1
2
3
4
5
6
7
8
9
10
Rectangle rec = new Rectangle(100,//Положение по горизонтали
                100,//Положение по вертикали
                220,//Ширина
                220);//Высота
            Image image = Properties.Resources.H//Изображение, в моём случае, взятое из ресурсов
                .Clone//Копируем изображение
                (rec,//Вырезаем
                System.Drawing.Imaging.PixelFormat.Format32bppArgb);//Конвертируем пиксели в необходимый формат
 
            pictureBox.Image = image;//Выводим изображение в pictureBox
Или можно ещё короче:
C#
1
pictureBox.Image = Properties.Resources.H.Clone(new Rectangle(100, 100, 220, 220), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Изображение выводится в pictureBox, но сути кода это не меняет. Насчёт определения границ пока ничего в голову не приходит.
1
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6
29.05.2011, 12:05  [ТС]
Изображение выводится в pictureBox, но сути кода это не меняет. Насчёт определения границ пока ничего в голову не приходит.
К сожалению, проблема в этом и состоит. Задавать конкретно координаты для областей нельзя, а как разграничивать текст, ориентируясь на пробелы - понятия не имею.
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
29.05.2011, 12:36
Мне кажется тут и вариантов нет, только перебор пикселей по хитрому алгоритму
0
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6
29.05.2011, 12:46  [ТС]
Мне кажется тут и вариантов нет, только перебор пикселей по хитрому алгоритму
Пробовала, но тут надо искать не один пиксель, а целый массив.
Пробовала в цикле перебирать по высоте и ширине, но не могу определиться с условием.
По сути вполне может быть достаточно найти, например, столбец, если разделяю блоки слева-направо, заполненный только белыми пикселями, но реализовать - проблема.
С С# не очень дружу, на других языках нельзя.
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
29.05.2011, 15:30
Пример картинок покажи, а то отсюда плохо видно какие там условия
0
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6
29.05.2011, 16:00  [ТС]
Кусок, с которым надо работать.
Отделить друг от друга надо как столбцы, так и строки во втором столбце.
Миниатюры
Разбить изображение на области  
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
29.05.2011, 16:33
ух ё-мое, не, я сваливаю отсюда )
Я думал как в газетах сплошной текст в столбцы и почти ровные пустые пространства

А тут вообще столбцов как таковых нет(промежуток между ними<=0 ), текст с разными отступами/шрифтами и расположен как попало
Короче не уверен что этот хаос вообще возможно разбить на столбцы
Проще будет найти библиотеку для распознания текста на картинках и приспособить для своих целей
0
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6
29.05.2011, 16:50  [ТС]
m0nax,
это был как раз самый тяжёлый случай.
Вообще таких изображений несколько, на некоторых есть столбцы, которые одинаково расположены друг от друга. Если бы пробел был 30 пикселей, было бы легче?
Как минимум, всё равно надо как-то искать первый слева.
0
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6
31.05.2011, 20:49  [ТС]
Решение частично нашла здесь, если кто-то тоже столкнётся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2011, 20:49
Помогаю со студенческими работами здесь

Как можно разбить изображение на произвольные области?
Здравствуйте. Как можно разбить изображение на произвольные области? Т.е. щелкнул в одной области - одно действие, щелкнул в другой области...

Как разбить изображение на пиксели
Всем здраствуйте!!! Подскажите пожалуста как в С# работат с пикселями? тоесть разбить изображение на несколько блоков,и менять каждый...

Как разбить изображение на каналы RGB?
Разработайте функцию, разбивающую изображение на фрагменты, в каждом из которых остается только один из каналов (R, G, B).

Поместить изображение шахматной доски в программу и разбить на ячейки (координаты)
У меня есть доска в виде картинки. Её надо поместить в Windows Form и разбить на ячейки (координаты). Затем надо поверх доски наложить...

Разбить изображение по яркости
Я пытаюсь разбить чёрно-белое изображение на небольшие участки схожие по яркости. Я выбираю параметр p и 2 точки(в начале алгоритма, это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru