Останнім часом в медицині інтенсивно розвивається математичне моделювання процесів, що визначають функціональність органів тіла людини. важливим етапом моделювання є створення геометричного образу. Одним із сучасних засобів, що відображають тривимірну структуру органів, є томографія. У роботі описаний ефективний алгоритм, дозволяє створювати геометричний образ органів людини на основі томограми. Дається опис програмної реалізації алгоритму фронтального зростання. Наведені приклади побудови тривимірних образів кісток таза, черепа і м'язів серця.

Анотація наукової статті з комп'ютерних та інформаційних наук, автор наукової роботи - Матвеенко В. П., Шардаков І. Н., Шестаков А. П.


In recent years, advances in medical technology have generated much interest in mathematical modelling of processes responsible for functionality of human organs. An important step towards modelling is to create a geometric image. One of the contemporary methods for determining the three-dimensional structure of human organs is tomography. In this paper, we present an algorithm allowing us to create the geometric images of human organs using tomography data. A software-based implementation of the frontal growth algorithm is described. Examples that illustrate the construction of three-dimensional images of hip bones, skull bones, and heart muscles are given.


Область наук:

  • Комп'ютер та інформатика

  • Рік видавництва: 2011


    Журнал: Російський журнал біомеханіки


    Наукова стаття на тему 'Алгоритм створення тривимірних образів органів людини по томографічних даними'

    Текст наукової роботи на тему «Алгоритм створення тривимірних образів органів людини по томографічних даними»

    ?УДК 531/534: [57 + 61]

    російський Журнал

    www.biomech.ru

    АЛГОРИТМ СТВОРЕННЯ ТРИВИМІРНИХ ОБРАЗІВ ОРГАНІВ ЛЮДИНИ ПО томографічне ЦИМ

    В.П. Матвеенко, І.М. Шардаков, А.П. Шестаков

    Інститут механіки суцільних середовищ Уральського відділення Російської академії наук, Росія, 614013, Перм, вул. Академіка Корольова, 1, e-mail: Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб побачити її.

    Анотація. Останнім часом в медицині інтенсивно розвивається математичне моделювання процесів, що визначають функціональність органів тіла людини. Важливим етапом моделювання є створення геометричного образу. Одним із сучасних засобів, що відображають тривимірну структуру органів, є томографія. У роботі описаний ефективний алгоритм, що дозволяє створювати геометричний образ органів людини на основі томограми. Дається опис програмної реалізації алгоритму фронтального зростання. Наведені приклади побудови тривимірних образів кісток таза, черепа і м'язів серця.

    Ключові слова: моделювання, тривимірний образ органів людини, алгоритм, томограма, сегментація, метод фронтального зростання, візуалізація образу серця, кісток таза і черепа.

    Вступ

    В даний час в науці і техніці широко поширений метод математичного моделювання фізичних процесів, що протікають в досліджуваних об'єктах. Такий підхід дозволяє найбільш повно вивчити об'єкт дослідження, здійснювати над ним контроль і прогнозувати його поведінку при заданих впливах.

    У медицині моделювання окремих органів і організму в цілому є важливим завданням, успішне вирішення якої дозволить швидко, точно і своєчасно виявляти патології, а також визначати оптимальне медичне вплив і прогнозувати його наслідки.

    Першим і невід'ємним етапом моделювання є створення геометричного образу. Слід зазначити, що надійність, точність і швидкість створення образу багато в чому визначає успішне математичне моделювання в медичній практиці.

    Ефективним, неінвазивним способом отримання зображення структури органів тіла людини є томографія. Томограма, отримана в результаті сканування, являє собою сукупність плоских перетинів, які формують тривимірний масив даних. Схематично процес отримання томографічного образу представлений на рис. 1.

    © Матвеенко В.П., Шардаков І.М., Шестаков А.П., 2011

    Матвеенко Валерій Павлович, д.т.н., академік РАН, директор Інституту механіки суцільних середовищ, Перм Шардаков Ігор Миколайович, д.ф.-м.н., професор, головний науковий співробітник Інституту механіки суцільних середовищ, Перм

    Шестаков Олексій Петрович, аспірант лаб. № 12 Інституту механіки суцільних середовищ, Перм

    09806267

    томограф

    Набір плоских перетинів

    томографічний образ

    Мал. 1. Схема створення зображення за допомогою магнітно-резонансної томографії (МРТ)

    Ці дані зазвичай використовують для перегляду об'єкта в трьох взаємно ортогональних напрямках, вимірювання лінійних і кутових розмірів, а також візуального визначення патологій. Такі можливості, як правило, закладені в програмному забезпеченні, що поставляється з томографом, але існують і окремі програмні продукти, такі як Seg3D, які також дозволяють здійснювати візуалізацію.

    Для побудови тривимірного геометричного образу використовуються різні підходи. Серед них можна виділити метод ручного побудови контурів окремих перетинів з подальшим автоматичним об'єднанням в тривимірний образ [4], метод деформованих поверхонь [3], метод фронтального зростання [1].

    Перший підхід реалізований в програмі Mimics. До його переваг належить можливість довизначення сильно зашумлених областей об'єкту сканування на основі апріорних знань досвідченого лікаря. Ця можливість особливо актуальна, коли томограма поганої якості. Недоліками підходу є: залежність якості геометричного образу від досвіду лікаря, великі витрати часу і, як наслідок, неможливість застосування в повсякденній медичній практиці.

    У методі деформуються поверхонь організовується итерационная процедура, на кожному кроці якої поверхня деформується так, щоб доставляти мінімум функціоналу, що залежить від перших, других похідних поверхні і зовнішнього поля. Переваги даного методу наступні: можливість побудови

    автоматичного алгоритму, отримання згладженої поверхні, яка обмежує тіло, можливість ідентифікації переривчастої кордону. Однак при застосуванні даного методу стартова поверхня повинна бути досить близькою до істинної, і для ідентифікації багатозв'язних областей необхідно розглядати додаткові алгоритми.

    Метод фронтального зростання є ітераційним. Для його використання досліджувана область представляється як сукупність підобластей. На кожній ітерації до поточної області зростання додаються сусідні подобласти, що задовольняють заданому критерію подібності. Процес виконується до тих пір, поки кількість елементів, доданих за ітерацію, не стане рівним нулю. Метод дозволяє: побудувати автоматичний алгоритм, отримати замкнуту область, має високу швидкість, застосуємо для однозв''язних і багатозв'язних відновлюваних областей.

    У даній роботі наведено варіант розробленого алгоритму побудови тривимірних образів органів людини, в основі якого використано метод фронтального зростання. Для цього алгоритму створена програмна реалізація на мові Delphi.

    Алгоритм побудови тривимірних образів

    НА ОСНОВІ МЕТОДУ фронтальний ЗРОСТАННЯ

    Наведемо вихідні дані, одержувані в результаті МРТ-сканування. Результатом сканування є поле концентрації ядер водню [2], заданий гратчастої функцією в декартовій системі координат:

    хі = дх • І, і = 0,1, ..., N

    у| = Ду • j, і = м

    г, = dz • k, k = 0,1, ..., Р

    ^ |к (х, у ,, zk) = <

    де г, j, до - індекси сіткової функції; dx, dy, dz - просторові кроки сіткової функції; И, М, Р - розмірності сіткової функції.

    Визначимо область у декартовій системі координат:

    О = {х е [0, dx | N], у е [0, dy | М], z е [0, dz | Р]} .

    Поставимо у відповідність кожній точці сіткової функції деяку підобласть Пук таким чином, щоб будь-яка точка з Про належала хоча б однієї подобласти

    П,

    | •

    дх

    дх

    ду

    ду-

    П, = \ х є [і • дх - -, и • дх + -], у є [і • ду - -,, • ду + ​​-], г є [до • ДГ - -, до • ДГ + - ]} •.

    2

    2

    2

    2

    2

    2

    Таким чином, отримуємо, що функція визначена на безлічі паралелограмів П; до з концентрацією Fijк. На рис. 2 представлена ​​ілюстрація

    процесу визначення подобластей в двовимірному просторі.

    Розглянемо процес об'єднання двох підобластей. У двовимірному просторі дві підобласті можна об'єднати тільки за умови існування загальної лінії. Таким чином, зростання можливе в чотирьох напрямках {(-1, 0), (+1, 0), (0, -1), (0, +1)}. На рис. 3 приведена ілюстрація напрямків зростання для випадку двовимірного простору. Безліч подобластей, що мають спільну лінію з Ц ;, відповідно дорівнює {Пг-й, Пг + і, Пг,; ^ Пг,; ^} .

    Сіткова функція F

    Безліч подобластей П

    • • •

    ІГ / -1, / + 1 р 1,1 + 1 і7м, / + і

    П / -І, / + і П /./+ 1 П / + і, / + і

    • • •

    р і-1, и Рц р і + 1, и

    П і-і.і Пу Пі + і, и

    dу / 2 Т

    1аХ / 2

    - • •

    Fi-i.ii? Ц-1 Рі + 1, и ~ 1

    П (-1,7-1 Ui.ii П / .і.у-і

    X

    У

    П /, / + 1

    Про Пі Про

    Гь-ц-і Пц-1 _______________ Пм, м

    Мал. 3. Напрями зростання в двовимірному просторі

    Мал. 4. Область пошуку (Оп)

    За аналогією з двовимірним простором розглянемо процес об'єднання областей в тривимірному просторі. Дві подобласти можна об'єднати тільки за умови існування загальної поверхні. При цьому зростання можливе в шести напрямках:

    Безліч подобластей, що мають загальну поверхню з П; до, будемо називати межують. Це безліч, відповідно, так само:

    Для опису алгоритму фронтального зростання введемо необхідні поняття:

    П * - підобласть, з якої виконується зростання;

    Оп - безліч П, на якому виконується пошук шуканої подобласти;

    Ор - безліч П, що належать області зростання;

    МПГОр - безліч П, що належать кордоні області зростання;

    МАПГОр - безліч активних П кордону Ор;

    МНАПГОр - безліч неактивних П кордону Ор;

    МПГП - безліч П, що межують з П, П є МПГП;

    КРП (П, П *) - критерій подібності двох П;

    Сп - стартова П, задається вручну або за допомогою допоміжного алгоритму.

    Проілюструємо введені позначення на прикладі двовимірного простору. На рис. 4 темним кольором зображено область, що підлягає заповненню, світлим кольором - навколишній її простір. Сукупність темних і світлих областей визначає область пошуку Оп алгоритму зростання.

    На рис. 5 показані: область зростання Ор, безліч активних і неактивних подобластей кордону області зростання. У нижній частині малюнка збільшений фрагмент області пошуку, на якому зображені: подобласть зростання П *, напрямку росту і

    *

    безліч подобластей, які відповідають цим напрямкам МПГП .

    {(-1, 0,0), (+1, 0,0), (0, -1,0), (0, +1,0), (0, 0, -1), (0, 0 , +1)}.

    Мал. 5. Область зростання

    Запишемо алгоритм за допомогою введених позначень:

    МАПГОр: = Сп; (Присвоюємо подобласть)

    Ор: = Сп; (Присвоюємо подобласть)

    цикл по П * е МАПГОр

    цикл по П е МПГП * якщо П? Ор, то

    якщо КРП (П, П *), то

    Ор: = Ор + П; (Додаємо елемент в мно ^^ жес ~ ^^ во)

    МАПГОр: = МАПГОр + П; (Додаємо елемент в безліч)

    кінець якщо кінець якщо цикл кінець

    МАПГОр: = МАПГОр - П *; (Виключаємо елемент з безлічі)

    цикл кінець

    В даному записі символ «=» означає операцію присвоювання.

    Результатом алгоритму є безліч подобластей Ор, що належать відновлюваної області.

    Мал. 6. Ілюстрація критерію на одновимірному просторі

    Оцінка витрат часу може бути виконана таким чином. Якщо область, що підлягає заповненню, містить N подобластей П, то кількість звернень до підобласті за весь час роботи алгоритму становить 4N для двовимірного простору і 6N для тривимірного простору. Це кількість звернень досягається за рахунок того, що зростання з елемента виконується один раз, після цього елемент виключається зі списку активних подобластей кордону.

    У розглянутому алгоритмі необхідно визначити критерій подібності

    КРП (П, П *) як правило, яке ставить у відповідність двом елементарним

    підобласті П і П * істинність або хибність їх однорідності. Однорідність визначається відповідно до інтенсивності поля, заданого на безлічі подобластей. Існує кілька способів визначення цього правила.

    У тому випадку, якщо відомий діапазон інтенсивності [1ш; п, 1тах], який визначає відновлювану область, критерій подібності записується в такий спосіб:

    якщо 1п е [! тт, 1тах], то КРП (П, П *) = істина, (*)

    інакше КРП (П, П *) = брехня, тут 1п - інтенсивність елементарної подобласти П.

    Для використання цього критерію необхідно, щоб стартова елементарна подобласть належала заданому інтервалу Сп е [1т; п, 1тах]. Ілюстрація

    описаного критерію на прикладі одновимірного простору наведена на рис. 6.

    У тому випадку, якщо ніхто не знає діапазон інтенсивності, що визначає

    відновлювану область, то критерій подібності записується в такий спосіб:

    якщо | 1п - 1п * \ < Eps, то КРП (П, П *) = істина,

    інакше КРП (П, П *) = брехня,

    тут Eps - максимальне відхилення інтенсивності між елементарними

    підобластю.

    Також можна застосувати критерій, що обмежує максимальне відхилення між перевіряється П і середньою інтенсивністю області зростання Ор.

    Програмна реалізація алгоритму фронтального зростання

    Безліч подобластей, що визначають область пошуку Оп, зручно зберігати у вигляді матриці:

    Оп [п х т] - для двовимірного простору;

    Оп [п х т х к] - для тривимірного простору.

    При цьому індекси сіткової функції збігаються з індексами матриці.

    Для зберігання МАПГОр (безлічі активних подобластей П кордону області зростання Ор) будемо використовувати список, оскільки для цієї структури зберігання найбільш вигідно виконуються процедури вставки і видалення елемента. Аналогічним способом будемо зберігати безліч внутрішніх і граничних подобластей області зростання Ор.

    Для того щоб в процесі алгоритму зростання не виділяти і не звільняти пам'ять під елементи списку, так як вона займає багато часу в порівнянні з іншими операціями, задамо елементи матриці Оп у вигляді записів, що дозволить одночасно виділити пам'ять і під область пошуку, і під список області зростання, і під список активних елементів кордону.

    Опис записи елемента матриці Оп:

    -І - інтенсивність, величина, що характеризує досліджуване простір; -1,1, до - індекси елемента матриці Оп;

    -УСлед - покажчик на наступний елемент матриці;

    ПрінадлОр - визначає, належить подобласть області зростання чи ні.

    Проілюструємо список активних подобластей кордону на прикладі двовимірного простору (рис. 7). Тут елементами списку є осередки матриці області зростання Ор.

    Таким чином, МАПГОр і Ор - це покажчики на перший елемент списку. За допомогою запропонованої структури зберігання множин можна реалізувати алгоритм в будь-якому середовищі програмування, що дозволяє працювати з динамічною пам'яттю.

    Використовуючи описану структуру зберігання, запишемо алгоритм у вигляді блок-схеми, наведеної на рис. 8. Для його опису необхідно ввести додаткові змінні і позначення:

    Впору - внутрішні подобласти Ор;

    ГПОр - граничні подобласти Ор;

    ППрінадлГ - визначає, чи належить подобласть кордоні Ор;

    КолАПГОр - кількість активних подобластей кордону області зростання;

    Припускає * - елемент списку МАПГОр, що стоїть перед елементом П *;

    Напр - масив векторів напрямків зростання, компонентами вектора є (/, у, к) відповідно [(-1,0,0), (+1,0,0), (0, -1,0), (0, + 1,0), (0,0, -1), (0,0, + 1)];

    : = - операція присвоєння; = - операція порівняння.

    Мал. 7. Ілюстрація списку МАПГОр

    введення

    Оп

    Сп

    зп:

    Впору: = п / 7;

    -ГПОр-Л.П -; _________________

    "МАпГОр": = Сп; МАПГОр.УСлед: = МАПГОр;

    _колАпгор _: = _ I; ____________

    П *: = МАПгОр;

    ,.-ПредПІ * = Л * _______________

    . П ЛрінадлОр _: = _ істіна2 ____

    ІII ІрінадлГ: = брехня ________

    Р = 0,5,1

    I П = П *. / + Напр [р] ./;

    J П = П * .У + Напр [РУ;

    До П: = П * .Л + Напр [р]. ^

    П: = Оп [1_П, J_П, К_П];

    П.УСлёд: = 'П * "" -

    Припускає * .УСлед: = П; Припускає *: = П;

    КолАПГОр. : = КолАПГОр. _ +. 1; _ "

    Л.ПріназлОр _: = _ істина ______, г

    ПредП.УСлед: = П .УСлед; Припускає: = П.УСлед; _______

    КолАПГОр: = КолАПГОр -

    П.УСлед: = ГПОр; П.УСлед: = впору;

    ГПОр: = П; Впору: = П *;

    Введення вихідних даних: область пошуку, стартова подобласть

    Ініціалізіруем списки вчасно і ГПОр

    Створюємо замкнутий список активних подобластей кордону і встановлюємо кількість його елементів

    Встановлюємо подобласть зростання і попередню їй в списку МАПГОр

    Встановлюємо приналежність подобласти зростання до Ор

    Зростання з подобласти

    Цикл за напрямками зростання

    Визначаємо подобласть, що межує з підобластю зростання

    .-| | Якщо подобласть належить області зростання, то перевіряємо інше

    Якщо подобласти не подібні, то встановлюємо приналежність П кордоні і перевіряємо інший напрямок

    у Додаємо подобласть в список активних подобластей кордону

    Збільшуємо кількість подобластей МАПГОр на одиницю

    Встановлюємо приналежність подобласти до Ор

    Видаляємо подобласть зростання зі списку активних подобластей кордону

    Зменшуємо кількість подобластей МАПГОр на одиницю

    Якщо подобласть належить кордоні, то додаємо її в список граничних подобластей

    П: = ПредП.УСледАПГОр; ППрінадлГ: = брехня

    Встановлюємо область зростання

    Якщо кількість подобластей МАПГОр дорівнює нулю, то зростання області закінчено

    В результаті роботи алгоритму отримуємо список внутрішніх подобластей Ор і список

    подобластей кордону

    Приклади застосування алгоритму для побудови

    Двовимірної і тривимірної ОБРАЗІВ

    Для демонстрації використання розробленого алгоритму стосовно томограмах серця людини на рис. 9 приведена послідовність реалізацій, відповідних різному числу ітерацій методу фронтального зростання (від 3 ітерацій до 135). На малюнках темним кольором визначена заповнена область (зростаюча область), сірим кольором - область, що підлягає заповненню, світлим кольором відповідно, область, яка не підлягає заповненню. Кількість ітерацій, відповідне повного заповнення, склало 135.

    ?>?>

    3 ітерації

    15 ітерацій

    <ь<ь

    35 ітерацій

    75 ітерацій

    ?>?>

    105 ітерацій

    135 ітерацій

    Послідовність зображень на рис. 10 демонструє процес формування геометрії просторового образу порожнини лівого шлуночка серця людини на різних етапах реалізації методу фронтального зростання. На кожному етапі реалізації методу легко обчислюється обсяг заповненого простору, що дозволяє встановлювати обсяг складних з геометрії елементів серця. Зокрема, обсяг лівого шлуночка серця людини, представленого на рис. 10, склав 71,4 мл. Кількість ітерацій, відповідне повного заповнення, дорівнювало 180.

    150 ітерацій 180 ітерацій

    На рис. 11-15 наведені приклади побудови геометричних образів органів тіла людини. На рис. 11 представлений геометричний образ серця.

    На рис. 12, а, б зображені тривимірні геометричні образи фрагмента тіла людини: а - вихідний образ на основі сукупності томографічних даних; б - образ кісток таза людини, сформований шляхом обробки вихідного образу розробленим алгоритмом.

    На рис. 13 наведено геометричний образ голови людини, що включає в себе м'які тканини і кістки черепа, отриманий на основі вихідних томографічних вимірювань.

    Мал. 11. Г еометрія серця людини

    а б

    Мал. 12. Геометричні образи фрагмента тіла людини: а - вихідний образ тазової кістки; б - геометричний образ тазової кістки

    Мал. 13. Візуалізація образу черепа

    Мал. 14. Візуалізація геометрії тіла Рис. 15. Візуалізація геометрії черепа

    Мал. 16. Візуалізація образу серця Рис. 17. Вимірювання лінійних розмірів

    На рис. 14-15 відображені результати обробки вихідних даних, що відповідають різним тканинам органів людини. Слід зазначити, що кожної тканини відповідає певний інтервал зміни томографічного сигналу. Можливість такої обробки закладена в створений алгоритм за рахунок вибору параметрів [1ш; п, 1тах] в критерії подібності (*).

    На рис. 14 наведені результати відновлення геометрії тіла пацієнта при використанні діапазону інтенсивностей, відповідного м'яких тканин, а на рис. 15 зображені кістки черепа цього пацієнта при використанні діапазону інтенсивностей, відповідного кістках.

    На рис. 16 представлені результати тривимірної візуалізації томографічного образу серця на основі трьох взаємно ортогональних перетинів і двовимірне зображення кожного перетину, а на рис. 17 - вимірювання лінійних розмірів (в даному випадку товщини стінок шлуночків).

    висновки

    1. Розроблено алгоритм, що дозволяє відновлювати тривимірну структуру внутрішніх органів людини на основі томографічних даних, отриманих в результаті сканування. В основі алгоритму закладено метод фронтального зростання [3].

    ISSN 1812-5123. Російський журнал біомеханіки. 2011. Т. 15, № 4 (54): 20-32 31

    2. Розроблено варіант чисельної реалізації алгоритму на псевдокоді. Написана програма на мові програмування Delphi, яка дозволяє: переглядати томограми; вимірювати лінійні розміри; виконувати побудову геометричного образу органів тіла людини; обчислювати обсяг, яку він обіймав геометричним чином.

    3. Отримані з використанням розробленого алгоритму геометричні образи органів людини є основою для математичного моделювання фізико-механічних процесів у них.

    4. Наведені приклади побудови геометричних образів кісток таза, черепа і міокарда серця людини.

    Подяки

    Справжня робота виконана за фінансової підтримки Російського фонду фундаментальних досліджень (проект № 11-01-96016-р_урал_а).

    Список літератури

    1. Del Fresno M., Venere M., Clausse A. A combined region growing and deformable model method for extraction of closed surfaces in 3D CT and MRI scans // Computerized Medical Imaging and Graphics. -2009. - Vol. 9, No. 3. - P. 182-199.

    2. Hornak J.P. The Basics of MRI [електронний ресурс]. - URL: http://www.cis.rit.edu/htbooks/mri/ (дата звернення: 23.06.11).

    3. Li B., Acton S. Active contour external force using vector field convolution for image segmentation // Transaction on Medical Imaging. - 2007. - Vol. 16, No. 8. - P. 38-44.

    4. Treece G.M., Prager R.W., Gee A.H., Berman L. Surface interpolation from sparse cross sections using region correspondence // Transaction on Medical Imaging. - 2000. - Vol. 19, No. 11. - P. 23-29.

    ALGORITHM FOR CREATING THREE-DIMENSIONAL IMAGES OF HUMAN ORGANS USING TOMOGRAPHY DATA

    V.P. Matveenko, I.N. Shardakov, A.P. Shestakov (Perm, Russia)

    In recent years, advances in medical technology have generated much interest in mathematical modelling of processes responsible for functionality of human organs. An important step towards modelling is to create a geometric image. One of the contemporary methods for determining the three-dimensional structure of human organs is tomography. In this paper, we present an algorithm allowing us to create the geometric images of human organs using tomography data. A software-based implementation of the frontal growth algorithm is described. Examples that illustrate the construction of three-dimensional images of hip bones, skull bones, and heart muscles are given.

    Key words: modelling, three-dimensional image of human organs, algorithm, tomogram, segmentation, frontal growth method, visualization of images of heart muscles, hip bones, and skull bones.

    Отримано 16 листопада 2011


    Ключові слова: МОДЕЛЮВАННЯ /Тривимірний образ ОРГАНІВ ЛЮДИНИ /АЛГОРИТМ /томограми /СЕГМЕНТАЦИЯ /МЕТОД фронтальний ЗРОСТАННЯ /ВІЗУАЛІЗАЦІЯ ОБРАЗУ СЕРЦЯ /КОСТЕЙ ТАЗУ І ЧЕРЕПА /MODELLING /THREE-DIMENSIONAL IMAGE OF HUMAN ORGANS /ALGORITHM /TOMOGRAM /SEGMENTATION /FRONTAL GROWTH METHOD /VISUALIZATION OF IMAGES OF HEART MUSCLES /HIP BONES /AND SKULL BONES

    Завантажити оригінал статті:

    Завантажити