2013-04-02 8 views
5

Po pierwsze nie jestem przyzwyczajony do zajmowania się zdjęciami, więc jeśli moje sformułowanie jest wyłączone, przepraszam.Algorytm próbkowania obrazu dla reprezentacji wieloboków przy użyciu Canvas i JavaScript?

Szukam zdjęcia upuszczonego na płótno HTML5, próbkowania, zmniejszenia liczby próbkowania, a następnie utworzenia wielobocznej reprezentacji obrazu za pomocą głównie trójkątów z kilkoma innymi wielokątami i narysowania tego obrazu na płótno.

Ale nie wiem od czego zacząć algorytm, aby to zrobić. Jakiego rodzaju pseudokodu potrzebuję dla tego rodzaju algorytmu?

To zdjęcie może zaoferować lepsze zrozumienie wyniku końcowego:

http://oi49.tinypic.com/1hcj2d.jpg

+1

Musi istnieć biblioteka, która to robi ... jest to często wymagane zadanie. Wygląda na to, że chcesz wykonać jakiś typ śledzenia wektorowego obrazu bitmapowego. –

+0

Ściśle związane z http://stackoverflow.com/questions/3038905/how-can-i-convert-simple-shape-bitmap-to-vector-geometry –

+0

Próbuję lepiej zrozumieć twoje pytanie. Pytasz, jak wygenerować obraz "Puentylizmu", ale zamiast trójkątów zamiast trójkątów? – markE

Odpowiedz

5

chciałbym wykonać następujące czynności:

  1. Tworzenie pola losowo umieszczonych kropek.
  2. Utwórz Voronoi diagram z kropek.
  3. Kolor każda komórka na podstawie próbek kolorów.
    • Czy wybierasz kolor w kropce? Próbuj wszystkie kolory w komórce i je uśredniaj? Wagę średnią przez środek komórki? Każda z nich przyniosłaby inne, ale prawdopodobnie interesujące wyniki.

Jeśli wynik musi być trójkąty, wielokąty, a nie wtedy zamiast diagram Voronoi stworzyć Delaunay triangulation. GitHub ma 15 JavaScript libraries for this, ale nie próbowałem żadnego, aby móc go specjalnie polecić.

+1

+1. Brzmi to jak obiecujące podejście, chociaż dzięki przypadkowo rozmieszczonym kropkom otrzymasz losowo wybrane wielokąty. Powstały obraz może przedstawiać oryginalny obraz tylko w kolorze, a nie w formie. –

+0

Edukacyjne! Dziękuję za to. –

+0

Bardzo dziękuję, szukałem informacji o triangulacji Voronoi i Delaunaya, ale nie miałem żadnego punktu wyjścia. – ars265

4

Ok, to trochę pośrednie, ale tu idzie .....!

Jest to wtyczka do SVG, które zamienia obrazy w pointilized sztuki: https://github.com/gsmith85/SeuratJS/blob/master/seurat.js

Oto interesująca część. Pod maską używa płótna do przetwarzania!

Przykłady pokazują obrazy złożone z "kropek" i "kwadratów".

Być może możesz zmodyfikować kod, aby utworzyć trójkąty - wystarczy przeciąć kwadraty po przekątnej, aby utworzyć trójkąty.

+0

Interesująca biblioteka, zagłębię się w nią i zobaczę, czy potrafię manipulować obrazami tak, jak myślę. Dzięki. – ars265

Powiązane problemy