群馬県高崎市でWebの製作や賃貸・不動産情報誌の作成(DTP)とかやってます。仕事絡みで、勉強したこととか、趣味で調べたこととかの個人的なメモみたいな記事を書いてます。

2009年06月23日

Willcom D4でカメラのシャッター音を消す

嘘です。

ただ単に、D4付属のカメラアプリを使わないで、カメラから画像をキャプチャすれば、シャッター音もしないよ~ってだけ。

PythonのVideoCaptureモジュールで簡単に出来たのでメモ

必要なもの
Python 2.5.2
Python Imaging Library (PIL)
VideoCapture
(VideoCaptureは、ダウンロード→解凍→DLLsフォルダとLibをPythonの同名フォルダに上書き)

上から順にインストールしたら、IDLE(Python GUI)を起動して、Python Shellに以下を入力

>>> import VideoCapture
>>> cam = VideoCapture.Device()
>>> cam.saveSnapshot('c:/image.jpg')

これで、Cドライブの直下にカメラから入力された画像が保存されます。
ちょう~かんたん♪

でも、さすがにこれだと自分が何をとっているのかもわかりづらいので、もうちょっとアプリっぽく。

GUIを何で作ろうか迷ったんですが、カメラから(セーブしないで)画像を取得するのには、getImageを使うのだけど、その戻り値は「Returns a PIL Image instance.」(PILのimageクラスのインスタンス)なので、pygameを使うのが楽そうなので、ダウンロードしてインストール。
Pygame

PILとPygameの連携についてはここを参照


camera.py

import pygame
from pygame.locals import *
import VideoCapture
import sys

pygame.init()
screen = pygame.display.set_mode((640,480))
pygame.display.set_caption('camera')
pygame.display.flip()
cam = VideoCapture.Device()

while 1:
cap = cam.getImage()
data = cap.tostring()
size = cap.size
mode = 'RGB'

image = pygame.image.fromstring(data, size, mode)
screen.blit(image, (0,0))
pygame.display.flip()
for event in pygame.event.get():
if event.type == QUIT:
cam.saveSnapshot('c:\image.jpg')
del cam
sys.exit(0)


↓上記のソースを実行すると、こんな感じ


×ボタンを押してアプリを終了する際に、画像をCドライブ直下に保存しています。

PILのイメージクラスのインスタンスなんで、画像にエフェクトかけたりするのも楽チンです。

結構いろいろ遊べるんじゃないでしょうかね。

……重いけど。


この記事へのトラックバックURL

http://lifecrak.gunmablog.net/t50579
上の画像に書かれている文字を入力して下さい