Wektoryzacja bitmapy? (własny program sterujący)
: 15 maja 2012, 12:10
Cześć.
Moje pytanie może Wam się wydać głupie, albo bezsensowne, ale mam tak, że lubię coś czasem zrobić w 100% we własnym zakresie, a pomyślałem, że tutaj najłatwiej uzyskam pomoc.
Chodzi mi po głowie prosta maszynka, powiedzmy że do grawerowania 2D. Generalnie chodzi o wyżłobienie obrysów kształtu, który mam w bitmapie. Bitmapa jest monochromatyczna, grawerowane miałyby być krawędzie czarnych kształtów.
Mechaniką się nie chcę tutaj zajmować, bo jakoś ją wyskrobię. Sterowanie chciałem zrobić jak najprościej, czyli informacje o krokach X/Y przekazywane do Arduino, skąd byłyby sterowane silniki, ewentualnie proste informacje w stylu "prosta od (X,Y) do (X', Y')". W każdym razie jako że to początki, nie chcę GCODE, nie chcę robić interpretera, chcę zacząć od czegoś łatwiejszego. Poza tym nie chciałbym strzelać z armaty do komara. Nie chcę też korzystać z gotowych programów/rozwiązań, "bo nie"
Łatwym etapem było wykrycie krawędzi bitmapy (program masochistycznie piszę w C#). Teraz mam taki problem - jak najłatwiej zwektoryzować daną bitmapę? Chodzi mi o to, że jeżeli ustalę tolerancję na X pikseli, chciałbym móc wykryć, że w tej tolerancji można wyrysować po krawędzi kształtu prostą A do punktu B.
Podejściem "hardkorowym" byłoby sterowanie po pikselu, ale zakładając, że maszyna miałaby minimalnie większą dokładność, niż bitmapa, w praktyce "proste" na grawerze wykazywałyby "pikselozę" (patrz zdjęcie w wiki). Macie jakieś pomysły, jak zacząć?
(mam nadzieję, że opisałem problem z sensem - wypiłem dopiero jedną kawę, więc jeśli coś jest niejasne, nie bijcie
)
Moje pytanie może Wam się wydać głupie, albo bezsensowne, ale mam tak, że lubię coś czasem zrobić w 100% we własnym zakresie, a pomyślałem, że tutaj najłatwiej uzyskam pomoc.
Chodzi mi po głowie prosta maszynka, powiedzmy że do grawerowania 2D. Generalnie chodzi o wyżłobienie obrysów kształtu, który mam w bitmapie. Bitmapa jest monochromatyczna, grawerowane miałyby być krawędzie czarnych kształtów.
Mechaniką się nie chcę tutaj zajmować, bo jakoś ją wyskrobię. Sterowanie chciałem zrobić jak najprościej, czyli informacje o krokach X/Y przekazywane do Arduino, skąd byłyby sterowane silniki, ewentualnie proste informacje w stylu "prosta od (X,Y) do (X', Y')". W każdym razie jako że to początki, nie chcę GCODE, nie chcę robić interpretera, chcę zacząć od czegoś łatwiejszego. Poza tym nie chciałbym strzelać z armaty do komara. Nie chcę też korzystać z gotowych programów/rozwiązań, "bo nie"

Łatwym etapem było wykrycie krawędzi bitmapy (program masochistycznie piszę w C#). Teraz mam taki problem - jak najłatwiej zwektoryzować daną bitmapę? Chodzi mi o to, że jeżeli ustalę tolerancję na X pikseli, chciałbym móc wykryć, że w tej tolerancji można wyrysować po krawędzi kształtu prostą A do punktu B.
Podejściem "hardkorowym" byłoby sterowanie po pikselu, ale zakładając, że maszyna miałaby minimalnie większą dokładność, niż bitmapa, w praktyce "proste" na grawerze wykazywałyby "pikselozę" (patrz zdjęcie w wiki). Macie jakieś pomysły, jak zacząć?
(mam nadzieję, że opisałem problem z sensem - wypiłem dopiero jedną kawę, więc jeśli coś jest niejasne, nie bijcie
