PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » Моя небольшая исследовательская работа по генератору случайных чисел


Моя небольшая исследовательская работа по генератору случайных чисел

Сообщений 1 страница 2 из 2

1

Я решил вычислить среднее значение из массива изображений. Требуется около 40Гб свободного места.
Подпрограмма №1.

Код:
#MAX  = 65536

UseJPEGImageEncoder()

Structure PIXEL
  Byte.a[3]
EndStructure

OpenConsole()

For i = 1 To  #MAX
  PrintN(Str(i)+"/"+Str(#MAX))
  Image = CreateImage(#PB_Any,  256, 256, 24)
  StartDrawing(ImageOutput(Image))
    *Buffer       = DrawingBuffer()
    *LastColor    = *Buffer + 256*256*3-SizeOf(PIXEL)
    For *Color.PIXEL  = *Buffer To  *LastColor  Step  SizeOf(PIXEL)
      With  *Color
        \Byte[0]  = Random(255)
        \Byte[1]  = \Byte[0]
        \Byte[2]  = \Byte[0]
      EndWith
    Next
  StopDrawing()
  SaveImage(Image,  Str(i)+".jpg",  #PB_ImagePlugin_JPEG, 10)
  FreeImage(Image)
Next

Подпрограмма №2.

Код:
#MAX  = 256

UseJPEGImageEncoder()

OpenConsole()

For i = 1 To  #MAX
  PrintN(Str(i)+"/"+Str(#MAX))
  Image = CreateImage(#PB_Any,  8192, 8192, 24)
  StartDrawing(ImageOutput(Image))
    *Buffer = DrawingBuffer()
    *LastColor    = *Buffer + 8192*8192*3-1
    For *Color.Ascii  = *Buffer To  *LastColor
      *Color\a  = Random(255)
    Next
  StopDrawing()
  SaveImage(Image,  Str(i)+".jpg",  #PB_ImagePlugin_JPEG, 10)
  FreeImage(Image)
Next

Программа подсчёта среднего значения изо цветных изображений 8192х8192.

Код:
UseJPEGImageDecoder()

Structure PIXEL
  Byte.a[3]
EndStructure

Global  Dim Color(256)

For i = 1 To  256
  Image   = LoadImage(#PB_Any,  Str(i)+".jpg")
  ResizeImage(Image,  1,1)
  StartDrawing(ImageOutput(Image))
    CopyMemory(DrawingBuffer(), @Color(i), SizeOf(PIXEL))
  StopDrawing()
  FreeImage(Image)
Next

For i = 1 To  256
  Average + Color(i)
Next

MessageRequester("",  Str(Average / 256))

Результат в шестандцатиричную систему счисления и/или разложить на цвета.
В итоге получено среднее значение цвета у файлого массива изо 256 файлов цветных изображений(127,127,127).
Возможно, если делать не JPEG и использовать сведение по ближайшему соседнему, - результат будет отличаться.
Для эксперимента я запустил параллельно генератор изображений градаций серого и генератор цветных изображений. Потом я нашёл среднее значение цвета.
Попробуйте, если интересно, с другими размерами или цветными или градации серого и другим количественным размером файлового массива.
Какие есть соображения по поводу того, что результат - средний цвет между белым и чёрным? Поделитесь.
==
Подсчитал средний цвет у 65536 изображений размеров 256х256 градации серого. Результат: (152, 127, 127).

Отредактировано PSY (31.10.2023 08:38:31)

0

2

Генератор генерирует а не вычисляет,тогда уж осциллограф.......

0


Вы здесь » PureBasic - форум » PureBasic для Windows » Моя небольшая исследовательская работа по генератору случайных чисел