Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 19.10.2010, 22:33   #1
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Сжатия матрицы

Как матрицу к примеру 256*256 сжать до 16*16!Именя матрицу с единичек и нолей - соответственно черных и булых пикселей! Нвпример несли черных больше 100б в 256*256 то ето 1 в 16*16!!!
пробовал встроеным цыклом внешний
for i:=1 to 16-do
  for 
j:=1 to 16-do
    
Begin
       
for ImX:=1 to ImWidth-do
         for 
ImY:=1 to ImHeight-do
            
Begin
               
if a[ImX,ImY]=1 then kb:=kb+1;//kb -количество черных пикселей
               
if kb>porog then b[i,j]:=else b[i,j]:=0; {porog макс знач черных точек в масиве}          
            
end;
    
End
Код вроде пашет, но при добавлении записи в файл во внутреннем цыкле
выдает ошибку!!!
__________________




(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 00:30   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сжатия матрицы

if kb>porog then b[i,j]:=else b[i,j]:=0
жуть какая, и как же это работает...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reks888 (20.10.2010)
Старый 20.10.2010, 01:31   #3
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Сжатия матрицы

По делу кто то ответить может???
__________________




(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 01:47   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сжатия матрицы

Задай вопрос более понятно.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 01:53   #5
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Сжатия матрицы

Дан масив 256*256 с единичек и нолей(битовое изображения) нужно его сжать до размера 16*16 соответственно в сжатом масиве один символ будет ровнятся нескольким в большом! как это реализовать?
__________________




(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 02:00   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сжатия матрицы

Думаю так:
for i:=1 to 16 do
  for 
j:=1 to 16 do
    
Begin
       xStart 
:= + (i-1)*16;
       
yStart := + (j-1)*16;
       
kb:=0;
       for 
ImX:=xStart  to xStart 15 do
         for 
ImY:=yStart  to yStart +15 do
               if 
a[ImX,ImY]=1 then kb:=kb+1;//kb -количество черных пикселей
       
if kb>porog then b[i,j]:=else b[i,j]:=0; {porog макс знач черных точек в масиве
    
End
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
JACUK (23.10.2010)
Старый 20.10.2010, 15:03   #7
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Сжатия матрицы

можно ещё применить RLE чтоб ещё сильнее сжать
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
JACUK (20.10.2010)
Старый 20.10.2010, 16:46   #8
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Сжатия матрицы

да, но это ни к чему! лутше rle я применю в своем упаковщике ресурсов!!
__________________




(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 22:17   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сжатия матрицы

2JACUK: хоть помог пример-то, который я поправил?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 21.10.2010, 01:49   #10
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Сжатия матрицы

как только до компа доберусь - сообщу! думаю завтра!
__________________




(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:08.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com