问题标签 [libgphoto2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
147 浏览

php - 在 raspbian 上的 lighty/lighttpd 上执行 gphoto2

我尝试使用 PHP 命令exec执行此命令:

我使用有效的文件名,当我使用 bash 中的变量参数执行命令时,它可以工作。但是,对于 php,它不会。我没有得到 exec 命令的回复。
我正在使用带有 lighty 和 php5 模块的 raspbian。这适用于其他样本。我也尝试了shell_exec,但没有成功。

有人能帮我吗?

0 投票
1 回答
643 浏览

c++ - 如何使用 cmake 将两个库链接到我的程序?

我想用 c++ 编写一个程序,它使用两个库 libgphoto2 和 opencv3.0。因此,我想在我的主要源代码中包含一个自己编写的头文件,其中包含一些利用 libgphoto2 库中定义的函数的函数,在其中我导入 opencv。第二个头文件只定义了一些常量,不使用外部库。

这两个库都功能性地安装在我的 macbook 上。我可以使用 cmake 编写和编译使用其中任何一个的工作程序,但我真的不知道 cmake 的语法以解决上述问题......顺便说一句:find_package 适用于两个库!

文件夹结构如下:

我的 CMakeLists.txt 文件:

键入 $ cmake 。写入构建文件没有任何错误。但之后,如果我输入 $ make ,我会收到以下错误:

源代码:

采取ShowAdjust.cpp:

mh_camera_control.hpp:

cv_supplement.hpp:

那么,如何正确链接这两个库呢?我做错了什么,或者我错过了什么?

非常感谢您!

0 投票
1 回答
432 浏览

c++ - gp_camera_file_get 如何工作?

我是 libgphoto2 的新手,对实际图像内存的位置有一些疑问。似乎照片是通过一个名为 a 的对象访问的CameraFile。源代码中包含一个名为 sample-capture.c 的示例,该示例具有一个名为 的函数capture_to_memory

在该函数中,使用创建和初始化 CameraFile 对象gp_file_new。的实现gp_file_new创建了一个CameraFile访问类型成员设置为 的对象GP_FILE_ACCESSTYPE_MEMORY

CameraFile然后将该对象传递给,我gp_camera_file_get不太清楚这个函数中发生了什么。

在调用 to 之后gp_camera_file_get,文件被发送到gp_file_get_data_and_size. 查看该函数的实现,并假设文件访问类型为GP_FILE_ACCESSTYPE_MEMORY,该gp_file_get_data_and_size函数不会分配任何内存,而只是将指针分配给 CameraFile 的数据成员(与大小相同)。

那么这个指针指向的内存在哪里呢?是在真机上吗?或者它在我的公羊的某个地方?我只是试图避免尽可能多的内存操作。我发现了一篇不错的博文

http://sepharads.blogspot.com/2011/11/camera-tethered-capturing-using.html?m=1

对象是CameraFile通过gp_file_new_from_fd. 这会将文件访问类型设置为GP_FILE_ACCESSTYPE_FD. 当gp_file_get_data_and_size在具有此访问类型的文件上调用时,将分配新内存并将文件的数据复制到其中。但是,这是从磁盘读取的,或者至少我认为这是因为 FD 表示 Unix 文件描述符,并且它需要一个实际的文件名字符串。这是否意味着gp_camera_file_get如果 CameraFile 的访问类型为 ,则将数据读入磁盘上的文件GP_FILE_ACCESSTYPE_FD

有一个函数叫做gp_file_free. 如果它是一个 FD 文件,它会关闭文件句柄,但它不会free(file->data)在任何地方调用,所以我很困惑......

做什么gp_camera_file_get?实现就在那里,但它有点让我失望。它实际上是否将文件从我的相机内存带到我的计算机内存并CameraFile->data在内存中分配?还是它只是让我处理存储在相机上的东西?

抱歉,如果问错了地方,我确实看到了 libgphoto2 的某种邮件列表,但我不知道它有多活跃。

0 投票
1 回答
1146 浏览

linux - 在 Linux 上的 gphoto2 中连拍照片

不确定这最好的属于哪里:摄影、电子、软件或这里。我有一台佳能 PowerShot G9 相机,我在 Linux 上使用 gphoto2 通过 USB 控制它。

我需要连续拍照并将它们复制到计算机(异步很好,因此可以以最大速度拍摄照片并且传输可以排队)。

使用 gphoto2,我可以像这样进行连续捕获:

gphoto2 --capture-image -F <frames> -I <seconds>

这给了我最多 4 秒的捕获间隔(0.25 fps)。如果我拔下相机并使用它的连拍模式,我可以以 0.8 fps 的速度拍摄。插入 gphoto2 时,我似乎无法更改连拍设置。我尝试了一些直接在 C 中使用 libgphoto2 的示例代码,但速度更慢。我怎样才能用这台相机完成更快的捕捉,或者什么相机可以让我做到这一点?

0 投票
0 回答
385 浏览

linux - 本地主机 php 中的 gphoto2 脚本

我正在尝试在 Ubuntu 15 上的 LAMP 中运行 gphoto2 命令。这是我的 PHP 脚本 c.php:

当我在终端上运行它时它工作正常,但是当我在浏览器中使用http://localhost/mycam/c.php运行它时它不会执行。

0 投票
0 回答
63 浏览

php - 如何使用 MAMP 在我的 PHP 服务器上安装 gPhoto2 包

我试图在我的 PHP 服务器 (MAMP) 中安装包 gphoto2。我已经在我的电脑上安装了 gphoto 并且它可以工作,但我想在我的 php 网站上集成 gphoto 实际上我试试这个:

我有这个作为回报: wp-content/themes/barberry/script.sh: line 6: gphoto2: command not found

我还在我的 MacOS 中安装了 brew,但我无法在 MAMP 上安装 gphoto2。感谢您 !

0 投票
1 回答
680 浏览

php - 从 PHP 命令启动 MPlayer

我正在做一个创建照相亭的项目。我有一台相机(佳能 550d)和一台显示我写的网页的触摸屏电脑(运行 ubuntu)。

我正在使用gphoto2从网页中控制我的 DSLR exec(),我可以轻松拍照。

我的问题是我还想在人们拍照之前显示相机的实时预览。现在,我准备好了一个脚本,它在一个无边界窗口中打开一个 MPlayer 实例,该窗口也位于所有内容之上,代码在一个名为的文件中live.sh

基本上 gphoto2 流到 fifo.mjpg 然后 MPlayer 播放该文件。

当我从终端运行它时,一切都很好:

如果我从 php 中运行相同的命令,它不起作用

看看我从这两个环境运行时得到的输出

从终端运行(此工作)

尽管存在所有错误,但一切都运行得非常好。

这是我从 PHP 中的 exec() 运行时得到的输出(这不起作用):

如果有人对如何使这项工作有任何想法,我将不胜感激。

谢谢!

0 投票
2 回答
1419 浏览

libgphoto2 - 如何识别2个同类型相机gphoto2

假设我有两个完全相同类型的相机,如果我不知道它们插入哪个端口,我将如何正确使用一个而不是另一个?

我知道您可以按名称选择相机,但它们都具有相同的名称。我知道您可以通过驱动器进行选择,但我无法确定用户将相机插入哪个端口。

这意味着我必须遍历相机并根据摘要选择正确的相机。不幸的是,如果相机与其他连接的相机属于同一类型,我无法判断它是否存在静态唯一标识属性。

如果我输入 gphoto2 --camera-summary 我得到:

其中不包括序列号之类的属性。

我也试过 gphoto2 --get-config serialnumber 但得到一个奇怪的结果:

任何帮助都会很棒,感谢阅读!

0 投票
2 回答
652 浏览

macos - 获取 gphoto2 的当前状态

我使用 --wait-event-and-download 参数运行 gphoto,这样我使用红外遥控器拍摄的照片就会保存到计算机中。

我设置了第二个脚本来中断等待过程并以编程方式拍照,如下所示:

但是我想确保第一个等待事件进程在我去中断它之前当前没有下载图像(这会导致图像填满相机内存的混乱情况,从而阻止进一步的操作)。所以第二个脚本应该更像这样:

任何人都可以帮我解决这个 if 语句吗?我可以读取正在运行的 gphoto 进程的当前输出行吗?

0 投票
0 回答
941 浏览

c++ - 如何使用使用 Homebrew 安装的 C 库

我使用 Homebrew 安装 gphoto2 和 libgphoto2,以便在使用 C++ 的相机控制应用程序中使用。我已经确认头文件链接在 /usr/local/includes 中:

我系统上包含文件夹的屏幕截图

根据https://github.com/gphoto/libgphoto2/tree/master/examples上提供的示例代码,我似乎应该能够使用包括#include <gphoto2/gphoto2.h>来访问头文件,但是这种方法同时使用都失败了Clang 和 Xcode 作为编译器。找不到文件。我究竟做错了什么?