質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Q&A

0回答

368閲覧

VirtualBoxでUSBカメラの使用

bam

総合スコア0

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

0グッド

0クリップ

投稿2022/05/27 18:46

VirtualBoxにてUSBカメラから画像入力をし、OpenCVを用いて解析したいです。以下のコードで実行を押すと本来は処理前と処理後の二つの画像が表記されるのですがコンソールで "select timeout”となり画面が表示されません。
初投稿、C言語に疎いこともあり、情報不足かもしれませんが、ご教示お願い致します。
・ノートPC: LAPTOP-ODFTF93F
・カメラ:ELECOM 2.0MP AUTO FOCUS Web Camera (有効画素数:約200万画素)
• IDE: Eclipse 4.2 (Juno), C/C++ 開発ツール (CDT), 日本語化プラグイン (Pleiades)
• 画像処理ライブラリ: OpenCV 2.4.6.1
以下、ソースコード

  • grayconv.c

*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <opencv2/core/core_c.h>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/highgui/highgui_c.h>
#define WIDTH 640 // 画像の水平画素数
#define HEIGHT 480 // 画像の垂直画素数
char win_src[] = "処理前", win_dst[] = "処理後"; // ウィンドウの名前

int main(void)
{
// ビデオキャプチャのための構造体
CvCapture *cap;
// 画像データのための構造体
IplImage *img_orig, *img_src, *img_dst;
// i, j: 画像配列の添字, val: 画素値
int i, j;
unsigned char val;

// ビデオキャプチャの構造体の初期化 if ((cap = cvCaptureFromCAM(0))== NULL) { printf("有効なカメラが見つかりません!\n"); return (1); } cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH, WIDTH); cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT, HEIGHT); // 画像データのメモリ確保および初期化 (符号なし8ビット×1チャンネル) img_src = cvCreateImage(cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1); img_dst = cvCreateImage(cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1); // ウィンドウの作成 cvNamedWindow(win_src, CV_WINDOW_AUTOSIZE); cvNamedWindow(win_dst, CV_WINDOW_AUTOSIZE); cvMoveWindow(win_dst, WIDTH, 0); // ウィンドウの位置を右にずらす // フレーム単位の処理のためのループ while (1) { // 1フレーム分キャプチャ img_orig = cvQueryFrame(cap); // 入力画像はカラーなのでグレイスケール画像に変換 cvCvtColor(img_orig, img_src, CV_BGR2GRAY); // (i, j) を画面全体で走査させるためのループ for (i = 0; i < HEIGHT; i++) { for (j = 0; j < WIDTH; j++) { // 画像 img_src の画素 (i, j) の輝度値を取得 val = img_src->imageData[img_src->widthStep * i + j]; // しきい値処理 if (val < 128) { val = 0; } else { val = 255; } // 画像 img_dst の画素 (i, j) の輝度値を更新 img_dst->imageData[img_dst->widthStep * i + j] = val; } } // 結果をウィンドウに表示 cvShowImage(win_src, img_src); cvShowImage(win_dst, img_dst); // "q" キーが押されたらループを抜ける if ((cvWaitKey(10) & 0xff) == 'q') break; } // 確保したメモリの開放 cvReleaseCapture(&cap); cvReleaseImage(&img_src); cvReleaseImage(&img_dst); cvDestroyWindow(win_src); cvDestroyWindow(win_dst); return (0);

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/05/27 23:04

VirtualBoxはそのコードとどういうふうに関わってるんでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問