Re: 1 klicks program för att fota från wencam [Avslutat]

Användarvisningsbild
lgrfbs
Inlägg: 6971
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: 1 klicks program för att fota från wencam [Avslutat]

Inlägg av lgrfbs »

Jag har letat på havet av binärer utan att hitta, så jag vänder mig hit, då ~20000 ögon kanske har sett nått :)
Det jag söker är ett program som med ett klick på "foto" knappen tar ett foto med webcameran, gör en beskärning och sist skalar ner bilden till 230x80 pixel på färdig bild och sparar den i en mapp på hårddisken.
Ska snurra på Windows 7/10 dator.
Kameran är en Andersson Webcam WBC 1.0
Fördrar freeware eller liknade licenser.

Har någon av er sett ett sådant program där ute på det binära havet?
Senast redigerad av lgrfbs 1 december 2018, 07:36:03, redigerad totalt 1 gång.
Användarvisningsbild
AndLi
Inlägg: 17042
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av AndLi »

Image magic bör klara allt utom möjligen att ta bilden..
robertk
Inlägg: 257
Blev medlem: 31 juli 2010, 19:46:02

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av robertk »

Irfanview skulle jag tipsa om.

Detta kanske är vad du letar efter?
https://lparchive.org/meatsupport/Image ... IrfanView/

//Robert
Nerre
Inlägg: 26652
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Nerre »

Tror mer på ImageMagick än Irfanview när det gäller detta, men ImageMagick verkar som sagt var inte kunna ta själva bilden.

Undrar om inte FFMmpeg kan användas för det dock.

https://trac.ffmpeg.org/wiki/Capture/Webcam

Dock körs ju ju dessa från kommandoraden så man behöver även nåt "scriptspråk" som kan fixa en knapp att trycka på.
Användarvisningsbild
lgrfbs
Inlägg: 6971
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av lgrfbs »

Att skapa en bat-fil typ:

Kod: Markera allt

Echo Tar foto
Kommando /Path /andra /parametrar

Echo Bearbetar bilden
Kommando /Path /andra /parametrar

Echo Bilden är klar!
Kommando för att öppna mappen med bilden eller visar med bildvisare.
Eof
Kan fungerar bra om man gör en genväg på skrivbordet.
Knappas
Inlägg: 148
Blev medlem: 26 november 2008, 16:51:09
Ort: Stockholm

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Knappas »

Om du kan tänka dig lite Python kan jag rekommendera dig paketet/modulen OpenCV vilket kan göra allt det du vill.
Dvs, ta bilden, resiza och sedan spara ner den.

Du vill alltså ta bilden när du trycker en tangent eller en knapp på skärmen?
Kan se om jag kan fixa en liten snurra som gör det.
Användarvisningsbild
lgrfbs
Inlägg: 6971
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av lgrfbs »

Det ultimata skulle vara (om jag får önska) ett fönster med live ruta och en skärmknapp med texten "ta lokfoto".
Annars en skärmknapp med texten "ta lokfoto".
visst kan jag stoppa in Python, kom på burken har Java installerat redan, glömde att ta med det i första inlägget.
Edit:--------------------------------------
Källa:
Mätvagn_dcc91_a.jpg
Mål:
Rocrail_bild.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Nerre
Inlägg: 26652
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Nerre »

lgrfbs skrev:Att skapa en bat-fil typ:
Det finns en del nackdelar med den lösningen.

Dels kräver det dubbelklick, och sen kan det trassla till sig om man råkar starta samma BAT-fil två gånger. Man behöver i såna fall en del felhantering.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Krille Krokodil »

Här är lite om att använda musklick, tangentbord eller knappar i OpenCV:

https://stackoverflow.com/questions/215 ... -in-python
Användarvisningsbild
lgrfbs
Inlägg: 6971
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av lgrfbs »

Nerre skrev:
lgrfbs skrev:Att skapa en bat-fil typ:
Det finns en del nackdelar med den lösningen.

Dels kräver det dubbelklick, och sen kan det trassla till sig om man råkar starta samma BAT-fil två gånger. Man behöver i såna fall en del felhantering.
Jepp, det får jag tänka på OM det blir en bat-fil.
Nerre
Inlägg: 26652
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Nerre »

Som sagt var, ImageMagick klarar i alla fall att beskära och ändra upplösning (du kan göra det antingen i samma kommando eller i två steg).

Ett problem som kan uppstå är kanske filnamnet. Jag körde nån programvara som kunde ta stillbild med webbkameran men filnamnet blev alltid samma (den var till för att ladda upp bilden med ftp till en webserver, men kunde istället alltså bara spara bilden i en mapp).

Om programvaran som tar bilden ger olika filnamn för varje bild blir det kanske problem för ImageMagick att hitta rätt. Eller nä, du kanske kan ha en mapp där bilderna "tas" och sen låta ImageMagick spara bilden (med annat filnamn?) i en annan mapp.
Knappas
Inlägg: 148
Blev medlem: 26 november 2008, 16:51:09
Ort: Stockholm

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Knappas »

Här kommer ett litet exempel som visar hur det går att göra med OpenCV och Python. Eller rättare sagt 2, jag skrev ett litet test med ett fönster med en knapp i TKinter, men sen läste jag ditt svar att du helst ville ha levande video och kunna se vad du tog för bild så jag skrev om det lite. Det blev visserligen inte någon knapp då, (det går dock säkert att fixa till om det var ett måste) utan man får trycka mellanslag istället när man ska ta själva bilden. Det var enklare i OpenCV att läsa av tangentbordet än blanda ihop det med tkinter.

Här är fösta versionen med knapp utan live video:

Kod: Markera allt

import Tkinter as tk
import cv2
import time

# Function to take the picture and save it to a file.
def take_picture():
  # Read the image for camera
  ret_val, img = camera.read()
  
  # Crop the image
  cx, cy, cw, ch = 10, 10, 300, 300
  cropped_img = img[cy:cy+ch, cx:cx+cw]

  # Resize the cropped image, but you can use img instead if you want to resize the original.
  rw, rh = 230, 80
  resized_img = cv2.resize(cropped_img, (rw, rh))

  # Create a filename and save the cropped and resized image
  filename = time.strftime("Picture%y%m%d %H%M%S.jpg", time.localtime())
  print filename + " Taken!"
  cv2.imwrite(filename, resized_img)


  
# Create a window with a button to press when you want to take a picture.
root=tk.Tk()
root.title("Snapshoot")
frame = tk.Frame(root)
frame.pack()
button = tk.Button(frame,
                   text="Say Cheese !",
                   padx = 50,
                   pady = 30,
                   command=take_picture) # Hook on take_picture to button press.
button.pack(side=tk.LEFT)

# Create a camera object-
camera_port = 0
camera = cv2.VideoCapture(camera_port)

# Set resolution of the image you want to capture, the capured image is as close as possible
# what the hardware can deliver.
width, height = 1280, 720
camera.set(cv2.CAP_PROP_FRAME_WIDTH, width)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, height)

# Call TKinter to do its job. It will call the fuction take_picture()
# every time the button is pressed.
root.mainloop()

# If you has arrived here you have pressed the close button!
print "Bye !"
och här kommer andra versionen med livevideo och mellanslag som avtryckare:

Kod: Markera allt

#import numpy as np
import cv2
import time

# Create a camera object-
camera_port = 0
camera = cv2.VideoCapture(camera_port)

# Set resolution of the image you want to capture, the capured image is as close as possible
# what the hardware can deliver.
width, height = 1280, 720
camera.set(cv2.CAP_PROP_FRAME_WIDTH, width)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, height)

while(True):
    # Capture frame-by-frame
    ret, img = camera.read()

    # Crop the image
    cx, cy, cw, ch = 100, 190, 1080, 340
    cropped_img = img[cy:cy+ch, cx:cx+cw]

    # Resize the cropped image, but you can use img instead if you want to resize the original.
    rw, rh = 230, 80
    resized_img = cv2.resize(cropped_img, (rw, rh))

    # Display the full image with the cropped area marked with a green rectangle.
    img = cv2.rectangle(img, (cx, cy), (cx + cw, cy + ch), (0,255,0), 2)
    cv2.imshow('Video', img)

    # Check for pressed keys
    # <Space> = Take snapshoot
    # q or ESC quits

    key = cv2.waitKey(1) & 0xFF
    if key == ord('q') or key == 27:
        break
    if key == ord(' '):
        # Create a filename and save the cropped and resized image
        filename = time.strftime("Picture%y%m%d %H%M%S.jpg", time.localtime())
        print filename + " Taken!"
        cv2.imwrite(filename, resized_img)


# When everything done, release the capture
camera.release()
cv2.destroyAllWindows()
print "Bye!"
Det är skrivet i Python 2.7 (inte i 3an som skiljer lite. Tror det borde gå bra där med om man ändrar printsatserna så de får paranteser, typ print("Hejhej") men jag hade Pyton 2.7 installerad och det är det jag är mest van vid.

Sedan behöver du själva OpenCV som i sin tur behöver Numpy, hur du installerar det kan du hitta >>>Här<<<
Användarvisningsbild
lgrfbs
Inlägg: 6971
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av lgrfbs »

Allt är installerat, script2/program2 (vad är vanligast att kalla kodbas i Python?) ner sparat som Rcam.py på min dator.
Användarvisningsbild
lgrfbs
Inlägg: 6971
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av lgrfbs »

Får ett felmeddelande:

Traceback (most recent call last):
File "C:\Mina\MJ\GMJ\RCam.py", line 2, in <module>
import cv2
ImportError: DLL load failed: %1 är inte ett giltigt Win32-program.
>>>
Edit----------------------------
Kom på att jag troligen kopierat 64bit versionen av cv2.pyd istället för 32bit.
Kopierade in 32bit versionen och föregående fel försvann och gav mig ett nytt:

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x7

Traceback (most recent call last):
File "C:\Mina\MJ\GMJ\RCam.py", line 2, in <module>
import cv2
ImportError: numpy.core.multiarray failed to import
>>>
Knappas
Inlägg: 148
Blev medlem: 26 november 2008, 16:51:09
Ort: Stockholm

Re: 1 klicks program för att fota från wencam + corp + skala

Inlägg av Knappas »

Installerade du on Numpy också eller var det vara cv2?
Felmeddelandet.

Kod: Markera allt

RuntimeError: module compiled against API version 0xa but this version of numpy is 0x7
Låter som den inte gillar den installerade versionen av numpy tycker jag. Den verkar vilka ha version 10 men har version 7.

Om du just installerade Python och således inte har något gammalt du är rädd om så kanske det är enklast att installera om hela Python 2.7 samt numpy samt opencv. Det var ett tag sedan jag själv lekte med opencv (2014 såg jag) och installerade det så jag letade bara upp OpenCV och där fanns en installationsguide som jag tyckte verkade bra. Nu har jag hittat ett enklare sätt när jag provade att installera på min laptop. Så nu har jag ett verifierat sätt som fungerar...

Börja med att öppna windows kontrollpanel och avinstallera Python 2.7
Ta för säkerhets skull även bort biblioteket C:\Python27

Gå till sidan https://www.python.org/downloads/release/python-2715/ och hämta Windows x86 MSI installer
Installera med alla val som default.

När det är installerat, öppna en CMD-prompt och gå till C:\Python27

Uppdatera Pythons paket installer...
Uppgrad pip.PNG
Gör sedan CD till Scripts foldern.
Därefter installera numpy...
install numpy2.PNG
Därefter är det opencv:s tur...
install opencv.PNG
Nu är allt installerat och man kan öppna IDLE vilket är Pythons standard IDE, först kommer man till en konsol där man kan skriva kommandon och då kan man prova att göra import av numpy och cv2. Det ska fungera utan felmeddelanden.
Om det fungerar (och det borde det göra) så kan man under FILE -> Open öppna ditt program RCam.py.
Test.PNG
Det borde fungera, det gjorde det på min bärbara i alla fall.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar