Canon PowerShot A80 webkameraksi :)

Aloittaja weatherc, torstai, 16.07.2009, 21:49

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

weatherc

Tuolla ww-foorumin puolella on jo kauan ollut juttua siitä että laiitais normi digikameran sääkameraksi. ;)

Oon mielenkiinnolla seuraannut kyseistä polkua ja ajatellut että se vois olla jotain kokeilun arvoista. Kokeilun aloittamista on hiukan hidastanut sopivan kameran löytäminen sopuhintaan (< kohtuu webkameran hinnan). Mitään uutta kameraahan ei tällaiseen viitsi ottaa mutta toimivan käytetyn kylläkin. Nooh, palkitseehan se kärsivällisyys joskus :)

Nyt löytyy tuosta pöydällä Canonin PowerShot A80, eli 4 megapikselin peli. USB-piuha koneeseen sekä 4.5V adapterilla virtaa. Kun sain asennettua ohjelmiston koneelle niin oli vain hetki ja kuva oli otettu suoraan koneelta sekä tallenntuna koneelle :)
Canonilla löytyy ilmainen softa jolla ottaa kuvat ajastettuna, en ole vielä kokeillut WD:tä, sekin vois ainakin teoriassa osata sen. Tässä on vielä pikkuinen mutka, Canonin oma ohjelma tallentaa aina kuvan eri nimellä, eikä se suostu talentamaan saman nimistä vanhan kuvan päälle. Etsinnäsää on nyt batch-skritpti jolla uudelleen-nimetä tuo filu esim. kamera-jpg:ksi.

Toiseksi haluaisin liittää siihen pikkasen tekstiä ennen sivulle puskemisen...

Sen jälkeen olisi se melenkiintoinen, minne sen laittais ja millaiseen koteloon, sekun ei mahtunut tuohon vanhaan halogeenilamppuun jossa vanha webkamera oli...  ;)

Liitteenä kokeiluotos kuvasta, kun otettu pienimmällä koolla ja "huonoimalla" laadulla ikkunan läpi (siitä sumeus ja heijastukset)....

weatherc

#1
Noniin :)

Nyt alkaa tuotos olemaan sen verran valmis että voidaan puskea nettiin:



Eli, Canonin omalla ohjelmalla otetaan ajastettuna kuva 3 minuutin välein ja tallenetaan se nimella kuva_9.jpg vahalle kannettavalle jonka herätin henkiin tätä kunniatehtävää varten :) Astuksissa on että vain yksi numero nimen perään ja alkaen numerosta 9, sillä ei ollut vaihtoehtoa että tallentasi ilman numeroa (tyhmää).
Ennen seuraavan kuvan ottoa ajetaan SS:llä batch-skripti joka kopioi tuon kuvan uuteen nimeen sekä poistaa tuon kuva_9.jpg:n, näin Canon tallentaa seuraanavn kuvan samalle nimelle mukisematta.
WD:n webcamcapturella laitetaan tuo "alabanneri" paikalleen.
Sen jälkeen haetaan kyseinen kuva sääkoneelle (kamera ei ole sääkoneessa kiinni) ja laitetaan säätiedot jonka jälkeen se on valmis nettiä varten :)

Koko projektin hinnaksi tuli noin 60 euroa, eli tuon käytetyn Canonin hinta huuto.netistä, eli halvemmalla kun hankkii kohtuu webkameran kaupasta. Kaupan päälle kuvan laatu parani x megapixelistä 4 megapixeliin. ;)

;D ;D

teutari

Eipähän tuosta voi sanoa muutakuin että kuva on kuin postikortti. ;D

weatherc

Lainaus käyttäjältä: teutari - perjantai, 17.07.2009, 19:04
Eipähän tuosta voi sanoa muutakuin että kuva on kuin postikortti. ;D

Ja tuo on "huomiommalla" laadulla jotta sain koon alas ;)
Itse kyllä yllätyin kun katselin sen kokoa (tällä hetkellä 58 Kb) että kuin pieni se on, odotin kolmenumeroista lukua, ja tämä sen jälkeen kun WD on laittanut omat lisukkeet siihen.

J.Jäntti

Onkos tuo kuva virallisesti 640x480, joka tuolta sivustolta täysimittaisena pukkaa?
(Tiedän asettaa limiitit kuvakoolle FinWX-sääasemasivuasi varten) :)
Juha Jäntti
Foorumin ja sivuston ylläpitäjä
Finland Weather Exchange (FinWX)

http://www.finwx.net/
------------------------------------------
Ukkoskausi avattu Suomessa: --.--.2024
Ukkoskausi avattu Helsingissä: --.--.2024
-------------------------------------------
Ukkospäivälaskuri 2024; Helsinki/Viikinmäki
0 ukkospäivää.
------------------------------------------
X, FinWX:n ylläpidon ilmoitukset
------------------------------------------

weatherc

Lainaus käyttäjältä: J.Jäntti - perjantai, 17.07.2009, 21:43
Onkos tuo kuva virallisesti 640x480, joka tuolta sivustolta täysimittaisena pukkaa?
(Tiedän asettaa limiitit kuvakoolle FinWX-sääasemasivuasi varten) :)

On juu :)


weatherc

Pirskatin WD kun temppuilee, se ei oikeen ymmärrä tehdä tuota "overlay"-osaa oikein ja väärentää värit....
Puolet kuvista tulee overlaylla mutta ilman säädataa ja toinen puoli säädatalla mutta väärillä väreillä..

weatherc

Noniin...

Tein sen php:llä sekä htaccessiin rewrite-rulella WD:n sijaan, eli kun kutsutaan cam.jpg:tä se ohjaantuu php-skriptiin joka tekee tuon overlayn sekä hakee säätiedot clientrawsta, joten nyt pitäisi toimia  ;D

Lyhyesti:

kamera.php:

<?php

#####################################################
# originally gleaned from
# http://www.fedeblog.com.ar/files/view.php?i=Watermark/watermark.php
# Modified by Liem Bahneman (liem@bahneman.com) with some 
# path enhancements when called to handled subdirectories


#####################################################
# Okay to edit these
date_default_timezone_set("Europe/Helsinki");


# what is the root of your files?
$basedir="/var/www/";
$watermarkimage="watermark.png";

$clientrawfile "clientraw.txt";
$clientraw get_raw($clientrawfile);
$font="tahomabd.ttf";
$astring="$clientraw[4]°C, " windDir($clientraw[3]) . " " ktsToMph($clientraw[2],1) . " m/s, $clientraw[7] mm";
$bstring=date('d.m.Y H:i T');

#####################################################
# end user modifiable stuff...

$file="webcam.jpg";
//$file=basename($_GET['i']);
$path=($_GET['p']);

$image $basedir."/".$path."/".$file;
$watermark $basedir."/".$watermarkimage;


$im imagecreatefrompng($watermark);

$ext substr($image, -3);

if (
strtolower($ext) == "gif") {
    if (!
$im2 imagecreatefromgif($image)) {
        echo 
"Error opening $image!"; exit;
    }
} else if(
strtolower($ext) == "jpg") {
    if (!
$im2 imagecreatefromjpeg($image)) {
        echo 
"Error opening $image!"; exit;
    }
} else if(
strtolower($ext) == "png") {
    if (!
$im2 imagecreatefrompng($image)) {
        echo 
"Error opening $image!"; exit;
    }
} else {
    die;
}

imagecopy($im2$im, (imagesx($im2)/2)-(imagesx($im)/2), (imagesy($im2)/2)-(imagesy($im)/2), 00imagesx($im), imagesy($im));

$grey imagecolorallocate ($im166166166);

imagettftext($im21005460$grey$font$astring);
imagettftext($im21005475$grey$font$bstring);

if(
$_GET[repeat]) {
    
$waterless imagesx($im2) - imagesx($im);
    
$rest ceil($waterless/imagesx($im)/2);
    
    for(
$n=1$n<=$rest$n++) {
        
imagecopy($im2$im, ((imagesx($im2)/2)-(imagesx($im)/2))-(imagesx($im)*$n), (imagesy($im2)/2)-(imagesy($im)/2), 00

imagesx($im), imagesy($im));
        
imagecopy($im2$im, ((imagesx($im2)/2)-(imagesx($im)/2))+(imagesx($im)*$n), (imagesy($im2)/2)-(imagesy($im)/2), 00

imagesx($im), imagesy($im));
    }
}

$last_modified gmdate('D, d M Y H:i:s T'filemtime ($image));

header("Last-Modified: $last_modified");
header("Content-Type: image/jpeg");
imagejpeg($im2,NULL,95);
imagedestroy($im);
imagedestroy($im2);


function 
get_raw$rawfile ) {
        
$rawdata implode(''file($rawfile));
        
$rawdata explode(' '$rawdata);
        return 
$rawdata;
}

function 
ktsToMph ($kts$prec) {
          
$prec = (integer)$prec;
          
$inch = (float)$kts 0.514444444;
          return 
round($inch1);
}

function 
windDir ($winddir)
// Given the wind direction, return the text label
// for that value.  16 point compass
{
  if (!isset(
$winddir)) {
    return 
"---";
  }
$windlabel = array ("N","NNE""NE""ENE""E""ESE""SE""SSE""S",
   
"SSW","SW""WSW""W""WNN""NW""NNW");
$dir $windlabel[ (int) ($winddir 22.5) ];
return 
"$dir";
}
exit;
?>


Sekä .htaccessiin:

RewriteEngine on
RewriteRule ^(cam.jpg)$ kamerakuva.php


;D ;D

weatherc


weatherc

Noniin, kamera taas linjoilla, piti saada parempi suoja sille, nyt se asustaa halogeenilampussa (a´la Biltema), vanha lammpu oli liian pieni sille.

Voi tyhmät, se "viisas" käänsi myös kuvan 90 astetta kun laittoi kameran ylösalas  ::) sekin on nyt korjattu php-skritistä käsin...