OpenCV-Python träffbildsanalys

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Shimano
Inlägg: 40
Blev medlem: 22 april 2019, 13:13:05

Re: OpenCV-Python träffbildsanalys

Inlägg av Shimano »

Nu har konstruktionen tagit form, en webkamera från Jula(199kr) tar video/bild av måltavlan. Ett problem hittils har varit att webkameran inte verkar klara av utomhusmiljöer som blir helt överexponerade. Bilden som tas är 1280x720, så det fungerar att hitta hål i den.

Tyvärr blir bilden extremt överexponerad utomhus när solen är framme, det verkar vara ett vanligt problem med webkamera och raspberry... Får försöka hitta en lösning


Bild

Bild

Bild
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14819
Blev medlem: 16 april 2006, 17:04:10

Re: OpenCV-Python träffbildsanalys

Inlägg av mrfrenzy »

Köp en enkel övervakningskamera med nätverksanslutning istället. Dom har bländare som justerar ljusmängden precis som på en riktig systemkamera. Kolla i databladet efter iris control.
jako
Inlägg: 319
Blev medlem: 26 oktober 2006, 18:32:35
Ort: Sandviken

Re: OpenCV-Python träffbildsanalys

Inlägg av jako »

Finns en app till mobiltelefon som heter Targetscan som är hel fenomenal på att analysera träffbilder. Den här tråden kommer jag att följa med stort intresse! Bra jobbat! :tumupp:
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: OpenCV-Python träffbildsanalys

Inlägg av Krille Krokodil »

Tyvärr kan de billiga kamerorna ha en massa autoskräp i sig som man inte kan stänga av.

Smart Camera är ett rätt bra program för att leka med parametrarna, finns i zippen man kan ladda ner till denna kameran:
https://www.biltema.se/bil---mc/verksta ... 2000034725

Sen är där mycket fisköga på många av de kameror som säljs, här vill man ha ett mindre field of view.
Finns flera appar och program för att räkna vilken lins som passar, bl a
https://www.stemmer-imaging.com/en/lens ... culations/

Arducam är de billigaste jag har hittat för kameror och linser.
http://www.arducam.com/
nifelheim
Den första
Inlägg: 2318
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: OpenCV-Python träffbildsanalys

Inlägg av nifelheim »

har du läst om detta med autoexponeringen på webkameror
http://internetbasedhomemonitor.blogspo ... olved.html
Shimano
Inlägg: 40
Blev medlem: 22 april 2019, 13:13:05

Re: OpenCV-Python träffbildsanalys

Inlägg av Shimano »

Jag har letat runt på nätet, men tyvärr verkar det som att webkamerorna bara har en bländare, som är anpassad för inomhusanvändning. Jag testade att låta kameran ta ett antal bilder för att själv justera innan bildtagningen(som i länken), men det fungerade inte heller tyvärr.

En dyrare kamera hade säkert klarat av det, men det hade inte varit lika roligt att sätta den bredvid målet. Det är också svårt att utröna om en kamera kommer att fungera innan man har provat den, kompabilitet med Raspberry Pi är också ett krav som inte alla kameror klarar av.
farskost
Inlägg: 454
Blev medlem: 17 april 2006, 19:55:21
Ort: Mölndal

Re: OpenCV-Python träffbildsanalys

Inlägg av farskost »

Sätt solglasögon på kameran? Något antigen färgat eller neutralt mörkt filter borde kunna hjälpa dig från att mätta kameran.
Användarvisningsbild
tecno
Inlägg: 27022
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: OpenCV-Python träffbildsanalys

Inlägg av tecno »

sätta den bredvid målet
Jag hade hellre valt en kamera där jag kan byta optik och ha hela kamerariggen en bra bit ifrån = mindre risk att få det hela sönderskjutet.
E Kafeman
Inlägg: 3238
Blev medlem: 29 april 2012, 18:06:22

Re: OpenCV-Python träffbildsanalys

Inlägg av E Kafeman »

Ett enkelt sätt att minska bländaren på kameran är att göra en egen bländare. Någon cm framför linsen placeras en matt-svart papp-skiva med lagom stort hål.
Hålstorleken ger bländareffekten. Gråmask alt färga linserna minskar skärpedjup/kontrast.
Användarvisningsbild
netrunner
Inlägg: 5510
Blev medlem: 4 februari 2005, 12:26:05
Ort: 127.0.0.1

Re: OpenCV-Python träffbildsanalys

Inlägg av netrunner »

Det är ganska lätt att hitta en CCTV-lins med motorstyrd bländare och CS linsgänga. Runt 13USD ink frakt.

Sen får man nog lusläsa vilken CCTV-kamera med CS linsgänga som har både TCP/IP (WiFi?) och stöd för motorstyrd bländare.

Jag antar att "motorstyrd bländare" bara kommer att vara en lödanslutning och kanske inte jättebra dokumenterad.

Om det sticker i väg i pris eller om det är svårt att hitta så går det att ta en kamera med M12-gänga och byta till CS-gänga. Utbudet av kameror med M12-gänga är mycket större.
Användarvisningsbild
farbrorvattenmelon
Inlägg: 255
Blev medlem: 29 januari 2009, 21:38:21

Re: OpenCV-Python träffbildsanalys

Inlägg av farbrorvattenmelon »

Prova ett gråfilter framför eller bara ett par solglasögon?
Johanb
Inlägg: 3406
Blev medlem: 26 mars 2006, 22:26:12
Ort: Smedjebacken

Re: OpenCV-Python träffbildsanalys

Inlägg av Johanb »

Om raspberrys egna kamera duger så finns det CS-adapter på thingiverse.
Shimano
Inlägg: 40
Blev medlem: 22 april 2019, 13:13:05

Re: OpenCV-Python träffbildsanalys

Inlägg av Shimano »

Solglasögon gjorde susen! :) Tack för ett bra tips!

Bild
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: OpenCV-Python träffbildsanalys

Inlägg av Krille Krokodil »

De kontrasterna duger fint.

Kod: Markera allt

hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

lower_blue = np.array([100,100,100])
upper_blue = np.array([150,255,255])

mask = cv2.inRange(hsv,lower_blue, upper_blue)

result = cv2.bitwise_and(img,img,mask = mask)

imgray = cv2.cvtColor(result,cv2.COLOR_BGR2GRAY)

im2, contours, hierarchy = cv2.findContours(imgray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 3)

cv2.imshow('masked',result)
cv2.imshow('contours',img)
Screenshot 2019-04-25 at 17.41.19.png
Screenshot 2019-04-25 at 17.41.29.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: OpenCV-Python träffbildsanalys

Inlägg av Krille Krokodil »

Kod: Markera allt

hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

lower_board = np.array([0,0,230])
upper_board = np.array([180,255,255])

mask = cv2.inRange(hsv,lower_board, upper_board)

result = cv2.bitwise_and(img,img,mask = mask)

imgray = cv2.cvtColor(result,cv2.COLOR_BGR2GRAY)

im2, contours, hierarchy = cv2.findContours(imgray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

for i, contour in enumerate(contours):
    area = cv2.contourArea(contour)
    if area <= 10000:
        continue

    epsilon = 0.1*cv2.arcLength(contour,True)
    approx = cv2.approxPolyDP(contour,epsilon,True)
    cv2.drawContours(img,[approx],0,(0,0,255),2)
    print(approx)

pts1 = np.float32(approx)
pts2 = np.float32([[0, 0], [0, 500], [750, 500], [750, 0]])
matrix = cv2.getPerspectiveTransform(pts1, pts2)

warped = cv2.warpPerspective(img, matrix, (750, 500))
Screenshot 2019-04-25 at 19.46.59.png
Screenshot 2019-04-25 at 19.47.20.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar