2018-04-12[n年前へ]
■チェンマイのタイ旧正月のソンクラーン(水掛け祭り)
チェンマイでタイ旧正月ソンクラーン(水掛け祭り)を、地上数メートルの上空から撮ってみました。氏改善方向を撮影することができるRicohのデジカメ Theta Sが出たときは「レンズを向けなかった方向すべてを撮影できて面白い」と思ったけれど、ドローン映像のような「カメラを置きたいと思った場所に、カメラを置けること」はそれを遙かに超える感動があった。来年今頃のカメラは、みんなそうなっているのかもしれない。
ずっと昔、京都の写真スタジオでバイトをしに行っていた時、「カメラマンは良い風景を予測して、その場所にいるようにすること、そんな場が生まれるように動くこと」と習った。もしかしたら、これからのカメラはデバイスを進化させる今のSONYみたいな方向と、カメラマンの可能性を高める視点自由度や何かしらの可能性を高めるまた別の方向が必要とされているのかもしれない。
2018-04-22[n年前へ]
■Python(Pythonista)でiOSカメラを自由自在に使ってみる
iPhone/iPadなどの機器のカメラは、焦点位置や露光時間や感度など、わりと細かく制御することができます。そうした撮影処理を使って、露光時間を変えた撮影を何枚もして画像(ハイダイナミックレンジ:HDR)合成をしたり、焦点位置を変えた撮影から焦点合成(フォーカススタッキング)を行ったりすると、意外に楽しいものです。とはいえ、そんなコード遊びをするのに、毎回Objective-C(やC++)でコーディングするのは少し面倒です。
というわけで、今日はiOSで動くPython ( Pythonista ) で、iOSのカメラをマニュアル撮影的に使うコードを書いてみました。それが下に貼り付けたPythonコード例です。この例では、焦点制御を無効化した上で、最近接位置から無限遠までのレンズ位置を0.0〜1.0の任意位置に制御しつ、撮影を行うことができます。
「開発用マシンでコードを書いてビルドした上で、スマホに転送して動かす」というような手間を掛けずとも、スマホ上で比較的短いコードを書いて、それをスマホ上で瞬時に動かして「自分だけの特殊撮影マシン」を仕立てて遊ぶことができるのは面白いものです。…今回貼り付けた撮影処理部分は全くPythonっぽくないコードですが、ひとたび「ライブラリ化」してしまえば、こんなコードを見る必要もなく、やりたいことだけをPythonから気楽に実行することができるようになります。…となれば、色々遊んでみたくなる人も多いのではないでしょうか。
# coding: utf-8 from objc_util import * import time AVCaptureSession = ObjCClass('AVCaptureSession') AVCaptureDevice = ObjCClass('AVCaptureDevice') AVCaptureDeviceInput = ObjCClass('AVCaptureDeviceInput') AVCapturePhotoOutput = ObjCClass('AVCapturePhotoOutput') def manualCapture(device, output, focusDistance, fileName): def captureOutput_didFinishProcessingPhotoSampleBuffer_ previewPhotoSampleBuffer_resolvedSettings_bracketSettings_error_( _self, _cmd, _output, _photoBuffer, _previewBuffer, _resolveSettings, bracketSettings, _error ): photoBuffer = ObjCInstance(_photoBuffer) jpegPhotoData = ObjCClass('AVCapturePhotoOutput' ).JPEGPhotoDataRepresentationForJPEGSampleBuffer_ previewPhotoSampleBuffer_( photoBuffer, _previewBuffer) jpegPhotoData.writeToFile_atomically_(fileName, True ) # delegate CameraManualPhotoCaptureDelegate = create_objc_class( 'CameraManualPhotoCaptureDelegate', methods=[ captureOutput_didFinishProcessingPhotoSampleBuffer_ previewPhotoSampleBuffer_resolvedSettings_bracketSettings_error_ ], protocols=[ 'AVCapturePhotoCaptureDelegate' ]) device.lockForConfiguration_(None) device.setFocusModeLockedWithLensPosition_completionHandler_( focusDistance, None) device.unlockForConfiguration() time.sleep(1) delegate = CameraManualPhotoCaptureDelegate.new() settings = ObjCClass('AVCapturePhotoSettings' ).photoSettings() settings.AVCaptureFocusMode = 0 output.capturePhotoWithSettings_delegate_( settings, delegate ) time.sleep(1) delegate.release() @on_main_thread def main(): session = AVCaptureSession.alloc().init() device = AVCaptureDevice.defaultDeviceWithMediaType_('vide') _input = AVCaptureDeviceInput.deviceInputWithDevice_error_( device, None) if _input: session.addInput_(_input) else: return session.startRunning() output = AVCapturePhotoOutput.alloc().init() session.addOutput_(output) time.sleep(1) manualCapture(device, output, 0.0, 'sample.jpg') time.sleep(1) session.stopRunning() session.release() output.release() if __name__ == '__main__': main()
2018-07-16[n年前へ]
■スマホを分光カメラにしてみよう!
100円ショップで買ったスマホケースに入れたiPhoneを毎日持ち歩いています。そのスマホケースとiPhoneの間には、回折格子や偏光フィルタ…といったいくつかの光学フィルタを入れてあります。いつか何処かで役に立つかも…と思いつつ、普段はそんなフィルタで何の役に立たない写真を撮っています。
たとえば、回折格子を背面カメラに貼り付けて、「分光の目」で町を眺めつつ歩いていると、光る側の「色んな輝線」が気になったり、眺める側の「自分のLMSの各3錐体の個数比とか波長特性」とか気になったり…そんな新鮮な世界が見えてきます。
普段見慣れた色使いの「セブンイレブン」の赤・緑・橙色だって、分光的に波長分解して眺めてみると意外に新鮮なもの。…ただひとつの難点は「スマホを観つつの町歩き」は危険極まりない…というところでしょうか。
2018-11-16[n年前へ]
■「本当なら見えるはずの星空」を景色に重ねて映すカメラを作る!
「本当なら見えるはずの星空」を景色に重ねて映すカメラを作る!を、「ソフトウェアデザイン 2018年12月号」に書きました。台風が直撃中の韓国大邱で、つまりは「とても天気が悪い夜空を見ながら」、文章とコードを書いてみたものです。個人的には、(この回で)7回目となる記事群中で一番「自分の好み」です。
宇宙(と書いて”そら”と読む)に浮かぶ地球から見ることができる銀河天体が好きで、自分が住む街から、そんな宇宙を眺めたい…と思ったりしたことがある人向けのAR( Augmented Reality)製作記事です。たとえば、夜更け、あるいは、葉の散ってしまった晩秋の木々を見ながら、そんな夜に似合った星空を眺めたい…と思ったことがある人のために作った記事になります。…なぜか途中、レイ・ブラッドベリ意識の文章になってしまいました。
2019-05-10[n年前へ]
■秒速約340m、ステレオ音声動画の「音源方向」を可視化する!
来週発売の「ソフトウェアデザイン 2019年6月号」に「秒速約340mで走る音を映し出すカメラ」を作るための技術入門・製作記事(4ページ)を書きました。いつか、街中で写したカメラ映像音声から、誰かの口が何かをかすかにささやく姿を眺めたい…何かが振動することで生まれた音が走る姿を眺めたい…、そんなことをいつかどこかで願ったことがある方は、少しだけでも楽しんで頂ければ幸いです。
「ねえ、秒速5センチなんだって」 「桜の花びらの落ちるスピードだよ」 「秒速5センチメートル」 「秒速5センチメートル」…空間を動くものすべて、映し出して、その美しさを眺めてみたいかも。