Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2010, 06:49   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
Вопрос Сколько квадратов на изображении?

Доброе утро всем! Возникла такая задача: посчитать по вертикали сколько квадратов на изображении и выдать ответ. Например, во вложении 2 столбца с квадратиками. Нужно посчитать сколько квадратов в первом и втором столбце поотдельности и выдать числа. Например, я знаю, что в первом столбце 2 квадрата, во втором 9, в результате пользователю должно отобразиться сообщение с числом "29". Есть какие-нибудь идеи как это можно сделать? Я предполагал делать какой-то шаблон, накладывать на изображение и смотреть закрашенные области. Верхняя строчка с квадаратами всегда закрашенная будет, думал как-то от нее отсчет начинать, но не совсем представляю алгоритм как это можно сделать, с графикой я не бум бум).
Изображения
Тип файла: bmp скрин.bmp (109.3 Кб, 164 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2010, 08:00   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

А шаг темных квадратов по горизонтали и вертикали известен?
Шаблон не поможет - в любом случае нужно сканировать изображение и сравнивать цвет пикселей.
Скандербег вне форума Ответить с цитированием
Старый 27.08.2010, 08:12   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
А шаг темных квадратов по горизонтали и вертикали известен?
Да. Расстояние между квадратами - статично. Их количество будет разным, а расстояние не будет меняться.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2010, 08:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Чисто предположение: Считаешь кол-во белых пикселей и кол-во всех остальных.
Дальше делишь на кол-во пикселей, которые по идее будут занимать один квадратик и получаешь кол-во квадратиков

Вот что я имел ввиду:
Код:
var j,i,cnt:integer;
begin
 b:=TBitmap.Create;
 b.LoadFromFile('C:\Documents and Settings\5097\Рабочий стол\скрин.bmp');
 for i:=0 to b.Width-1 do
  for j:=0 to b.Height-1 do
   if b.Canvas.Pixels[i,j]<>clwhite then inc(cnt);
 b.Free;
 Caption:=IntToStr(cnt div 25);
end;
Здесь 25 - колво черных пикселей в квадратике
I'm learning to live...

Последний раз редактировалось Stilet; 27.08.2010 в 08:19.
Stilet вне форума Ответить с цитированием
Старый 27.08.2010, 08:21   #5
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

А такое предложение.
Считывать цвет пикселей по вертикали с шагом равным шагу квадратов в массиве и такое количество пикселей за один проход, сколько квадратов по горизонтали.
Если, допустим, будет 3 колонки, то каждая итерация принесет значения 3-х пикселей. Далее смотреть какой цвет у каждого и увеличивать или не менять счетчик. Медленных по-пиксельных чтений будет в разы меньше.
Скандербег вне форума Ответить с цитированием
Старый 27.08.2010, 08:27   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Здесь 25 - колво черных пикселей в квадратике
А результат работы кода-то был какой?
Цитата:
Если, допустим, будет 3 колонки
Максимально возможное кол-во колонок - 15. Не больше. Меньше да, может быть запросто, а больше 15 - нет.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2010, 08:28   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
с шагом равным шагу квадратов
А если квадраты будут лежать неравномерно?
Цитата:
А результат работы кода-то был какой
11 - кол-во всех квадратов.
А чтоб разделить ты свою командирскую рубку сникерсом заряди, и подумай как картинку порвать на две части и их анализировать (подсказываю - bitblt)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.08.2010, 08:29   #8
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Суть в том, что один квадрат занимает, к примеру, 25 черных пикселей, всё остальное - белое. Т.е. Stilet предложил считать кол-во черных пикселей (или, по коду, не белых), а потом полученный результат делить на кол-во пикселей в квадрате.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 27.08.2010, 08:30   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
А если квадраты будут лежать неравномерно?
100пудово расстояние между квадратами будет одинаковым
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2010, 08:40   #10
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А если квадраты будут лежать неравномерно?
Вот я и говорю, что нормальной постановки задачи у нас нет. А чего гадать?
Судя по примеру изображения темные квадраты лежат равномерно.
Если это так, то есть возможность в цикле читать по одному цвету из каждого квадрата или того места, где он может быть.
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У гусей и кроликов вместе 2n лап. Сколько может быть гусей и сколько кроликов ? Вывести все сочетания C++ Оксаночка:) Помощь студентам 16 26.01.2012 19:15
Гиперссылка на изображении Alex2009 HTML и CSS 5 03.05.2010 17:12
сколько платит каждый жилец за электроэнергию и сколько они платят вместе. известно - стоимость 1кВт/час Pops Microsoft Office Excel 9 25.01.2009 15:28
Помогите оценить, сколько может стоить проект. Его покупают - сколько взять? grenles Свободное общение 4 16.07.2008 09:38
Изображения на изображении :) nikleb JavaScript, Ajax 6 24.11.2007 01:34