forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Delphi (http://forum.boolean.name/forumdisplay.php?f=66)
-   -   Сжатия матрицы (http://forum.boolean.name/showthread.php?t=13535)

JACUK 19.10.2010 22:33

Сжатия матрицы
 
Как матрицу к примеру 256*256 сжать до 16*16!Именя матрицу с единичек и нолей - соответственно черных и булых пикселей! Нвпример несли черных больше 100б в 256*256 то ето 1 в 16*16!!!
пробовал встроеным цыклом внешний
PHP код:

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

Код вроде пашет, но при добавлении записи в файл во внутреннем цыкле
выдает ошибку!!!

pax 20.10.2010 00:30

Ответ: Сжатия матрицы
 
PHP код:

if kb>porog then b[i,j]:=else b[i,j]:=0

жуть какая, и как же это работает...

JACUK 20.10.2010 01:31

Ответ: Сжатия матрицы
 
По делу кто то ответить может???

pax 20.10.2010 01:47

Ответ: Сжатия матрицы
 
Задай вопрос более понятно.

JACUK 20.10.2010 01:53

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

pax 20.10.2010 02:00

Ответ: Сжатия матрицы
 
Думаю так:
PHP код:

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


Mr_F_ 20.10.2010 15:03

Ответ: Сжатия матрицы
 
можно ещё применить RLE чтоб ещё сильнее сжать

JACUK 20.10.2010 16:46

Ответ: Сжатия матрицы
 
да, но это ни к чему! лутше rle я применю в своем упаковщике ресурсов!!

pax 20.10.2010 22:17

Ответ: Сжатия матрицы
 
2JACUK: хоть помог пример-то, который я поправил?

JACUK 21.10.2010 01:49

Ответ: Сжатия матрицы
 
как только до компа доберусь - сообщу! думаю завтра!


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot