Znaleziono 9 wyników

autor: x
03 sty 2007, 00:48
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

pukury pisze:witam !! myślę że jako scaner byłby niezły układ - albo podobny jak w scanerach lusterko 6 kątne obrotowe plus przesów
Obrotowe lusterko stosują w kasach hipermarketów, zamiast ręcznego czytnika. Angole wypisują, że wystarczy walcowy kawałek czegoś przezroczystego, żeby wytworzyć linię. Ale mam wątpliwości - w każdym razie zwykłe światło tak się nie zachowuje. Zainwestuję kilka zł w zwykły wskaźnik, nigdy się nie bawiłem nawet czymś takim.

Rzeczywiście, opcja z cieniem jest prostsza "mechanicznie", ale trudniejsza programowo - trzeba mieć obraz "wzorcowy" - wogóle bez cienia, zrobić XOR ze zdjęciem zawierającym cień, i zostaje kreska ( i różne brudy pewnie też - szum matrycy itd. - trzeba by to jeszcze "odszumować") - zabawa na maksa.

Jeśli uda się zrobić tą analizę jasności, to trochę rozmazana kreska nie zaszkodzi, a może nawet pomoże.
autor: x
02 sty 2007, 22:48
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

A to znacie? Wygląda ciekawie. Obiekt musi stać na tle dwóch płaszczyzn złożonych pod kątem 90 st. i na tej podstawie program szacuje ułożenie elementów. Niestety, raczej dla Win. Może by "poszedł" pod mono, ale ze sterownikiem kamery już nic się nie da zrobić.

DAVID

Ja jednak podłubię przy tym co mam, linuksowcom też się coś należy. Powinno dać się zwiększyć dokładność odczytu przez interpolację plamy światła. Sprawdzając kolejne piksele w poprzek jasnego paska uzyskamy coś w rodzaju krzywej Gaussa. Wystarczy obliczyć maksimum, i to da wynik z dokładnością większą niż 1px. Oczywiście muszę zrobić próby ze zdjęciami.

A co z laserem, czy takie zabawkowe wskaźniki mają soczewkę do tworzenia "paska", czy trzeba szukać czegoś lepszego? (czytnik kodów paskowych?)
autor: x
29 gru 2006, 00:07
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

uff... Trochę podłubałem. Dodałem obsługę pliku konfiguracyjnego, mozna spokojnie rzeźbić w ustawieniach. Wersję dla windowsów też mi się udało ukleić, i nawet działa - w każdym razie pod Win 9x powinno działać. Jak ktoś chce się pobawić, to chętnie prześlę. Plik .exe jest troche duży, bo linkowany statycznie - 750 kilo.

Dołączam plik uzyskany z czterech jpeg-ów 320x200px z krzywą kreską.

Wartość HORIZ_AVG musi być w zakresie od 1 do maksymalnie "liczba przetwarzanych zdjęć". Najlepiej 1.

VERT_AVG najlepiej w zakresie 2 - 5 - przy czym im mniej, tym więcej punktów.

Edit: Warto poczytać dokument o dozwolonych rozszerzeniach.
autor: x
23 gru 2006, 20:53
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

Jeszcze wracając do Scan_Extract: To co wziąłem za makietę komunikatów programu, to właśnie efekt jego pracy, w formacie AC3D

Kod: Zaznacz cały

AC3Db
MATERIAL "ac3dmat1" rgb 1 1 1 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10
 trans 0
OBJECT world
kids 1
OBJECT poly
name "scan3d" 
loc 0.0 0.0 0.0
numvert 0
numsurf 0
kids 0
Należy użyć

Kod: Zaznacz cały

scan_extract > wynik.ac3d
żeby odfiltrować to co trzeba do pliku wynik.ac3d. Zrobiłem test na czterech obrazkach z białą kreską, i plik wynikowy ma 3.9K. Tylko jakie programy tego formatu używają?
autor: x
22 gru 2006, 22:25
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

pltmaxnc pisze:Dlaczego chcesz budować skaner dotykowy ? To jest co prawda pożyteczne urządzenie ale ma sporo poważnych wad. Może jednak optyczny, niekoniecznie z laserem , zobacz jakie to proste .
Strona zalinkowana przez Markcompa już mi całkowicie rozjaśniła problem, rzeczywiście ideowo jest to banalnie proste, nawet przetwarzanie zdjęć. Ale mam wątpliwości, czy domowymi środkami da się uzyskać choćby podobną dokładność jak dotykowo. Kąt pomiędzy obiektywem a źródłem światła musi być jak najmniejszy, żeby nie zgubić zagłębień. Sfotografowana kreska będzie więc bardzo zbliżona do linii, i bez bardzo dużej rozdzielczości aparatu pogubią się różne niuanse modelu.

Ale z drugiej strony jest to znacznie szybsze, niż macanie całej powierzchni pręcikiem, i można skanować bardzo delikatne rzeczy, np. z plasteliny. Kiedy/jeśli maszyna ruszy, pomyślę też nad możliwością przezbrojenia na "światło", ale to już do innego działu.

Kurczę, warto popracować nad tym programem. Umożliwić normalną konfigurację, dodać możliwość przetwarzania obiektów przesuwanych, a nie tylko obracanych przed aparatem. Licencja bardzo fajna.
autor: x
22 gru 2006, 19:48
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

markcomp77 pisze:

Kod: Zaznacz cały

~/PRG/scan_extract$ make 
g++ -o scan_extract scan_extract.cxx -ljpeg 
scan_extract.cxx:128: error: invalid pure specifier (only `= 0' is allowed) before ';' token 
make: *** [scan_extract] Błąd 1
Bo ja wiem czy to błąd kompilatora. Chyba właśnie tak nie powinno się deklarować "czysto wirtualnych" funkcji składowych. Kolejne wersje gcc są coraz bardziej restrykcyjne. Spróbuj zamienić

Kod: Zaznacz cały

  virtual int load ( char *fname ) = NULL ; 
na:

Kod: Zaznacz cały

  virtual int load ( char *fname ) = 0; 
pltmaxnc pisze:Prosilbym kogoś o podeslanie wersji skompilowanej bo nie bardzo wiem jak w tym temacie się poruszać.
Jak już pisałem, program jest bardzo prymitywny, i wszystkie ustawienia konieczne do poprawnego wyliczenia kształtu trzeba wpisać przed kompilacją programu:

Kod: Zaznacz cały

/*================================================================*/ 
/* USER EDITABLE SECTION: Change these to suit your scanner */ 
/*================================================================*/ 
#define CAMERA_HFOV 50.0f /* Degrees */ 
#define CAMERA_VFOV (CAMERA_HFOV*4.0f/5.0f) /* Degrees */ 
#define CAMERA_DISTANCE 0.30f /* Meters */ 
#define LASER_OFFSET 15.0f /* Degrees */ 

#define HORIZ_AVG 10 /* Num horizontal points to average */ 
#define VERT_AVG 10 /* Num vertical points to average */ 
/*================================================================*/ 
Warto dodać choćby funkcję wczytującą te parametry z pliku konfiguracyjnego. Ale w takiej postaci jak jest, musisz najpierw podać kąty i odległości jakie masz w swoim ustrojstwie, bo wyjdą głupoty.
autor: x
21 gru 2006, 23:19
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

Ambitny ten Makefile. Ale strona ciekawa, wreszcie się dowiedziałem jak działa skaner laserowy. I straciłem zainteresowanie. Laser, kamera, obrotowa scena, megabajty zdjęć - za dużo zachodu. Właśnie się nieśmiało przymierzam do skanera igłowego.

A co do pytania "W jakim środowisku uruchomoć można taki program ?" - pod windowsami też się powinno dać skompilować i uruchomić, tylko trzeba okiełznać odpowiedni kompilator - np. mingw, i zdobyć libjpeg w wersji dla windowsów, albo dokompilować. Albo np. Debian ma gotowy mingw w wersji do "crosscompilation" pod Win. To działa.
autor: x
21 gru 2006, 22:23
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

Potem się okaże, że to rootkit.

A tak na serio, to wygląda na wersję 0.0.1-pre-alpha, prawie wszystko wpisane "na sztywno", 500 linii kodu, jakaś użyteczna funkcjonalność pojawi się pewnie kilkanaście wersji później. Ale w wolnej chwili przejrzę ten kod.
a linuksiarze juz za kompilacje się biorą ...
Rzeczywiście, to już taki odruch żeby sprawdzić czy się skompiluje.
autor: x
21 gru 2006, 21:19
Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
Temat: program ?
Odpowiedzi: 26
Odsłony: 9218

To jest program C++, potrzebuje tylko biblioteki libjpeg. Polecenie kompilacji:

Kod: Zaznacz cały

 g++ -o zfcnc zfcnc.cpp -ljpeg
(zfcnc to oczywiście nazwa pod jaką zapisałem skopiowany stąd kod)

U mnie kompiluje się bez żadnych problemów. Tylko wytłumaczcie mi: co ten program robi? Podawałem mu nawet dwa pliki które nazwałem 00000000.jpg i 00000001.jpg, cuś tam wyświetla (w większości napisy "na sztywno" wpisane do printf()), i to wszystko, żadnego fizycznego efektu w postaci pliku wynikowego.

Wróć do „program ?”