2014-10-24 GoでFaceTime HDカメラやWebカメラを使う パソコン・インターネット golang webcam おはようございます。このところ、オイシックスのKitオイシックスで、納得行く料理の出来なのに、子どもたちは、余り食べてくれません。昨日も口にしたものの、余り食べませんでした。@kjunichiです。 Go言語でもやってみた Goでもcgoというのがあり、Cocoa APIも叩けることを思い出し、Rustと同様のものをGoで実装してみた。 GoはRustでは、必要だったC APIの型宣言的な記述が不要で、その分短く書ける。と言っておきながら、 Rustの方は、CのAPIのラッパーも書いていたので、余計に長いので、そのまま比較するとかわいそうな気がする。 File: webcam.go ------------------------- package main //#cgo pkg-config: opencv //#include //#include import "C" import "unsafe" func main() { text := C.CString("Hello World!") defer C.free(unsafe.Pointer(text)) cap := unsafe.Pointer(C.cvCreateCameraCapture(0)) C.cvNamedWindow(text, 1) for { frame := unsafe.Pointer(C.cvQueryFrame((*C.CvCapture)cap)) C.cvShowImage((*C.IplImage)frame) c := C.cvWaitKey(2) if c == 0x1b { break } if c == 0x20 { C.cvSaveImage(C.CString("snap.jpg"), frame, (*C.CInt)0) break } } C.cvDestroyAllWindows() } Link b.hatena.ne.jp 関連記事 Goつながり Go言語でコマンドプロンプトに画像を表示するコマンドを作って、Vimの:terminalで表示させた GIMPのプラグインをGoで書く(その1) goroutineを使って高速にLAN内の*.localなホスト名の一覧を取得するツールを作った macOSのCPU温度をgRPCを使ってElectronで作ったデスクトップマスコットに表示させた Webカメラつながり RustでFacetime HDカメラやWebカメラを使う 10年前の記事 nadesico64計画実行 5年前の記事 Windows 7 Home Premium アップグレード版 ファミリーパッケージやっと買えた 4年前の記事 四国・九州ドライブ 一日目 1年後の記事 Electronで自分のIPアドレスをLAN内のiPhoneに通知するには