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に以下を入力
これで、Cドライブの直下にカメラから入力された画像が保存されます。
ちょう~かんたん♪
でも、さすがにこれだと自分が何をとっているのかもわかりづらいので、もうちょっとアプリっぽく。
GUIを何で作ろうか迷ったんですが、カメラから(セーブしないで)画像を取得するのには、getImageを使うのだけど、その戻り値は「Returns a PIL Image instance.」(PILのimageクラスのインスタンス)なので、pygameを使うのが楽そうなので、ダウンロードしてインストール。
Pygame
PILとPygameの連携についてはここを参照
camera.py
↓上記のソースを実行すると、こんな感じ

×ボタンを押してアプリを終了する際に、画像をCドライブ直下に保存しています。
PILのイメージクラスのインスタンスなんで、画像にエフェクトかけたりするのも楽チンです。
結構いろいろ遊べるんじゃないでしょうかね。
……重いけど。
ただ単に、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


