Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
1

Сравнить jpeg рисунки

18.03.2014, 18:18. Показов 1692. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
надо сравнивать jpeg рисунки и узнать сколька правилных ответов
напишите код плз
pixels использовал не вышло
scanline не знаю как использовать
Сравнить jpeg рисунки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2014, 18:18
Ответы с готовыми решениями:

Resize JPEG, BMP, GIF, PNG --> JPEG
Доброго дня! Стала задача сделать ресайзер. Требования: картинка по соотношению вес/качество...

JPEG->MemoryStream = 120тиков а JPEG->Image1 и Image1->MemoryStream = 30тиков?
Добрый вечер. Впринципе название темы все объясняет. Ради любопытства думал что может по умолчанию...

Рисунки
Помогите выполнить задание. Я прикрепил файл с ним.

Рисунки вб
Кто может подсказать что-бы при нажатии кнопку и вместо дуги или эллипса появлялась на том же месте...

13
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
25.03.2014, 14:45  [ТС] 2
вот код не работает помогите алгоритмой
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
procedure TForm1.Button1Click(Sender: TObject);
var
k,x,y:integer;
begin
k:=1;
for x:=0 to image1.Width do
   for y:=0 to image1.Height do
        begin
 
          if (image1.Canvas.Pixels[x,y]=clBlue)  then
            begin
                if ((image1.Canvas.Pixels[x+10,y]=clBlue) and (image1.Canvas.Pixels[x,y+10]=clBlue) and (image1.Canvas.Pixels[x-10,y]=clBlue) and (image1.Canvas.Pixels[x,y-10]=clBlue)) then
                begin
                  if (image2.Canvas.Pixels[x,y]=clBlue) then
                  begin
                mass[x,y]:=image1.Canvas.Pixels[x,y];
                memo1.Lines.Add(ColorToString(mass[x,y])+'  '+'x'+inttostr(x)+'  y'+inttostr(y)+'  % '+inttostr(k));
                inc(k);
                  end;
 
                end;
            end;
 
        end;
 
end;
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
28.03.2014, 05:33 3
Цитата Сообщение от Akmal Посмотреть сообщение
pixels использовал не вышло
Почему не вышло? Сравнение pixels происходит нормально.
0
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
01.04.2014, 10:22  [ТС] 4
толька там куча точек
если оба рисунка width and height разные
то
image1.canvas.pixels[x,y]
не совпадает image2.canvas.pixels[x,y]
как избежат от етого
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
03.04.2014, 13:49 5
Цитата Сообщение от Akmal Посмотреть сообщение
если оба рисунка width and height разные
то
..то рисунки заведомо не идентичны, можно даже не пыжиться их сравнивать, тем более попиксельно
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
03.04.2014, 21:23 6
Цитата Сообщение от Akmal Посмотреть сообщение
если оба рисунка width and height разные
то
image1.canvas.pixels[x,y]
не совпадает image2.canvas.pixels[x,y]
как избежат от етого
Например, перед сравнением рисунков проверить достаточно информации на рисунке image2.
Pascal
1
2
3
4
5
6
7
8
9
10
...
if (image1.width <= image2.width) and (image1.height <= image2.height) then
begin
  //сравнение рисунков
end
else
begin
  ShowMessage('На рисунке "image2" недостаточно информации.');
end;
...
0
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
04.04.2014, 09:11  [ТС] 7
спс
ещо одна проблема когда они закрашивает ручкой Color не равно будет clBlue
как найти цвета похожие clBlue ( GetBValue(60...255) )
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.Button1Click(Sender: TObject);
var
k,i,j,m:integer;
begin
   k:=1;
   for i:=0 to image1.Width do
      begin
       for j:=0 to image1.Height do
            begin
            for m:=90 to 255 do
              if ( GetBValue(m)=image1.Canvas.Pixels[i,j]) then
              memo1.lines.Add(ColorTostring(image1.Canvas.pixels[i,j]));
 
 
 
            end;
      end;
end;
не сработал помогите разобратся
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
04.04.2014, 13:01 8
А если цвет пасты будет черным, или синим, но другим ?

Вообще данная задача более похожа на задачу распознавания образов, в том числе с использованием нейронных сетей.

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

Видишь слева черные черточки ? По ним, скорее всего, нужно проводить калибровку, чтобы узнать наклон листа а также расстояние между строками. Не знаю насколько можно доверять длине черточек, но она очень похожа для расстояние между элементами по ширине, хотя, наверное, лучше основываться на отношении высоты строки к размеру элемента. Или возможно будет лучше определить ширину строки через расстояние между границами - красными вертикальными линиями, такое число будеть больше и отталкиваться от него будет более правильным.
Или например определять ширину строки через расстояние между верхней и нижней черной черточкой на листе.

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

Для упрощение обработки изображения также обычно применяют такие приемы: обесцвечивание, вытягивание яркости и контраста, конвертирование в черно-белое (даже не в градации серого).
Можно использовать часть инструкций из этой статьи http://habrahabr.ru/post/120562/
1) Убрать цвет
2) Найти среднее
3) что ниже среднего - заменить на черный цвет, что выше - на белый
вместо (2) и (3) можно выкрутить яркость-контрастность чтобы фон стал белым, а все остальное - черным (если вдруг через среднее будет выдавать неправильную картинку)
0
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
09.04.2014, 07:32  [ТС] 9
там только синий
может бить любого спектора Blue(40.. 255)
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
11.04.2014, 11:18 10
Начни с определения наклона картинки, а то вот в примере между высотой первого и последнего элемента в строке большая разница.
Удостоверься что твоя программа умеет правильно определять координаты кружочков.
Вместо попиксельного сравнения делать сравнение среднего арифметического, либо сравнение по среднему арифметическому разности с эталонным изображением.
0
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
14.04.2014, 10:29  [ТС] 11
как делать формулу напиши
ср.а=(а+...+ан)/н
???
0
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
18.04.2014, 07:08  [ТС] 12
не подскажеш где можна найти книги про это???
0
4 / 4 / 0
Регистрация: 23.03.2013
Сообщений: 58
19.05.2014, 15:32  [ТС] 13
обесни как определить наклон картинки ???
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
19.05.2014, 16:38 14
Цитата Сообщение от Akmal Посмотреть сообщение
обесни как определить наклон картинки ???
например сравнить координаты левого-нижнего (или любого другого) угла второго и предпоследнего (для большей точности) черного прямоугольника из тех что слева
0
19.05.2014, 16:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2014, 16:38
Помогаю со студенческими работами здесь

Рисунки
&lt;!DOCTYPE html&gt; &lt;head&gt; &lt;title&gt;web-tehnologies&lt;/title&gt; &lt;link rel=&quot;stylesheet&quot;...

Рисунки
Доброго всем вечера . Меня интересует такой вопрос , как правильно масштабировать рисунок ? Всех...

Рисунки в БД
Здравствуйте, уважаемые эксперты! Подскажите, как решить проблему с созданием базы данных о...

рисунки в DrawGrid
покажите пожалуйста пример с помещением в определенную ячейку, рисунка из переменной...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru