从卡农相机下载图片到电脑的问题
我将EOS佳能相机连接到PC 我有一个可以远程拍照的应用程序,然后将图像下载到PC, 但是,当我从相机上删除SD卡时,我无法下载从缓冲区下载到PC //注册objceteventcallback err = EDSDK.EdsSetObjectEventHandler(obj.camdevice, EDSDK.ObjectEvent_All, objectEventHandler, new IntPtr(0)); if (err != EDSDK.EDS_ERR_OK) Debug.WriteLine("Error registering object event handler"); /// public uint objectEventHandler(uint inEvent, IntPtr inRef, IntPtr inContext) { swit
2 2024-01-07
编程技术问答社区
佳能的edsdk edsinitializesdk()API的exc_bad_access
我在OS X 10.11.2上的Xcode 7.2中编写了一个摄像机控制程序,并且我的程序偶尔会在Edsinitializesdk()上崩溃.在线大多数解决方案都建议下载其他EDSDK.FRAMEWORK文件,但这对我不起作用.另外,大多数解决方案都是在大约3年前撰写的. 对我来说没有意义的事情是该程序大部分时间都运行,只有偶尔会崩溃.有没有人找到了防止不良访问的工作? 解决方案 这似乎与OSX 10.11+ El Capitan和"较旧的" Edsdks之间的不兼容有关,对我们来说,与Swift结合使用时. OSX 10.10优胜美地似乎并不是问题.佳能EOS实用程序和其他纯Objective-C/C ++主要不受此影响.我可以确认2016年4月8日发布的EDSDK 3.4包括该区域的修复程序.
10 2023-12-19
编程技术问答社区
佳能EDSDK 我如何获得实时图像的宽度和高度?
我编写了C ++代码,以在显示器上显示Live View图像.我在Stackoverflow上提到了一些代码.最后,我完成了代码,但是有一些问题. 我想使用OpenCV显示实时视图图像,但我不知道要获得实时视图图像的宽度和高度. (也许是通过EDSDK函数检索的.) 请为我回答. (我附上了代码,我想要适当的代码答案) (查看"//libjpegturbo....//,有手册_WIDTH&HEIGHT.我想使用函数检索) // Functions_body bool LiveViewStart() { EdsError err = EDS_ERR_OK; EdsCameraListRef cameraList = NULL; EdsCameraRef camera = NULL; EdsUInt32 count = 0; bool isSDKLoaded = false; // In
6 2023-12-03
编程技术问答社区
如何通过SDK在佳能摄像机上启动/停止视频录制?
我有一台佳能7D数码相机,我希望能够控制PC的视频录制. 我已经下载了佳能SDK 2.8,阅读了其中包含的所有文档,但仍然无法弄清楚如何在相机上启动或停止视频录制. 是否有可能通过佳能SDK控制视频录制? 谢谢. 解决方案 最新的佳能摄像头SDK文档包含一个答案: 6.4.3开始/结束电影拍摄 您可以通过以下操作开始/结束电影拍摄. EdsUInt32 record_start = 4; // Begin movie shooting err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_start), &record_start); EdsUInt32 record_stop = 0; // End movie shooting err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(r
14 2023-11-18
编程技术问答社区
带有佳能EDSDK 2.5.2 VB.NET的实时视图
我正在尝试做两件事,偏好数字1: 使用vb.net和佳能EDSDK 2.5.2打开实时视图,并在Windows表单应用程序中渲染实时输出.目前,我正在尝试将其放在图片框中.但是,我肯定会提出建议. 第二个选项将至少打开实时视图,并通过相机上的视频输出进行流式传输到监视器. 我真的很想完成第一个!以下是我当前的代码库,帮助! Private Sub btnStartLiveView_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStartLiveView.Click Dim err As Integer = EDS_ERR_OK Dim prop As Integer = EdsEvfOutputDevice.kEdsEvfOutputDevice_PC Dim proptype As Integer = EDSDKTypes.k
2 2023-11-14
编程技术问答社区
Canon EDSDK 2.11 on OSX EdsOpenSession exc_bad_access
我正在尝试使用EOS XSI在OSX上使用佳能EDSDK 2.11.我尝试运行示例代码,我写了自己的代码,甚至下载了佳能Edsk,ofxcanon的OpenFrameworks和一个附加组件,并运行了其示例代码.每当任何代码都接触到Edsopensession时,我都会收到exc_bad_access错误. 谁能告诉我可能发生的事情以及我可能做错了什么? 解决方案 我也有同样的问题.从佳能网站下载的SDK似乎存在一些问题. 在这里您可以尝试的是,它解决了我的问题. 安装和更新EOSUTISIO(确保起作用) 转到/申请/佳能实用程序/ 显示EOS实用程序的软件包内容. 在Frameworks目录中您将拥有EDSDK.FRAMEWORK 将其复制到您从佳能网站上获得的. 希望它会有所帮助.
4 2023-08-23
编程技术问答社区
SDK错误。0x8D07, 当在C#中使用佳能SDK时
我只下载源教程在这里 .当我使用Connect我的佳能70D运行它时,我在下面遇到了错误. 我错过了什么意思? 错误: 错误发生在此行上: 这是包含exe文件的文件夹,看起来像: 解决方案 我通过让相机知道主机上有足够的磁盘空间来解决此问题. 添加行 CameraHandler.SetCapacity(); 之前 CameraHandler.TakePhoto(); 应该做这个问题. 其他解决方案 错误0x8D07代表EDS_ERR_TAKE_PICTURE_CARD_NG 我不是100%确定它的含义,但这是某种写入错误.要解决此问题,请格式化卡,关闭相机并放出电池几秒钟. 这应该解决问题.
72 2023-08-23
编程技术问答社区
佳能LiveView:图像转换为OpenCV Mat
我正在尝试实时显示LiveView映像.我在Windows下使用EDSDK 2.14 + QT5 + OPENCV + MINGW32.我在图像处理中不是很复杂,所以现在有以下问题.我使用佳能EDSDK的示例,直到代码的这一部分都可以: // // Display image // 我搜索了很多示例,但所有示例都写在C#或MFC或VB上.我还发现建议使用libjpegturbo进行解压缩图像,然后使用openCV进行显示.我尝试使用libjpegturbo,但没有解开该怎么办:(也许这里有人有转换liveview stream的代码示例到opencv mat或qimage(因为我使用qt)? 解决方案 基于佳能EDSDK示例,您可以将其正确长度的Edsstreamref"流"数据附加到QByteArray>中.然后,例如以以下方式将QByTearray的原始数据作为JPG解析为新的Qimage: QImage my_image = QImage::fromData(l
6 2023-07-17
编程技术问答社区
使用v4l2loopback和EDSDK Liveview,佳能单反相机视频回放?
我想将我的数码单反相机用作视频输入,以便在Linux和Android下进行Skype/Google Talk. 是否可以使用V4L2Loopback和佳能EDSDK创建视频循环?如何将LiveView缓冲区从相机送到视频循环回去? 谢谢 解决方案 您需要一个"生产者"应用程序,将帧写入Loopback设备(并且以前已经通过佳能ESDK获取了这些帧) v4l2loopback已经提供了一些简单的生产者示例,您可以查看其他已经具有本机V4L2Loopback输出支持的应用程序,例如, ,,其他解决方案 截至2017年10月, gstreamer 已更新为1.0, v4l2loopback 也收到了一些更新. 因此,@reinaert albrecht发布的旧命令不再起作用,现在有效的新命令是: gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc fd=0 ! decodebin name=de
14 2023-06-19
编程技术问答社区
佳能SDK-下载图像到主机PC
我正在尝试下载佳能摄像机从其SD卡拍摄的图像到主机PC,我已经编写了代码,以便它可以拍摄,并且不再将其保存在SD卡上,但是我找不到它在主机PC上.有人有任何指示吗?我的主要功能和功能如下所示,不包括GetFirstCamera函数. 我真的不知道回调功能如何工作. #include #include "EDSDK.h" #include "EDSDKTypes.h" #include "EDSDKErrors.h" EdsError getFirstCamera(EdsCameraRef *camera); EdsError downloadImage(EdsDirectoryItemRef directoryItem); EdsError EDSCALLBACK handleStateEvent (EdsStateEvent event,EdsUInt32 parameter,EdsVoid * context); EdsError EDSCALLBACK
60 2023-03-06
编程技术问答社区
EDSDK的回调不工作
我有一个工作命令行应用程序,使用EDSDK v2.13. 但是,当我注册回调时,会有一系列的属性事件. 我已经纠正了这样的循环: while(!_kbhit()) { EdsOpenSession(camera); Sleep(10); EdsCloseSession(camera); } 这似乎很糟糕. SDK破坏了,还是我缺少某些东西? 解决方案 如果您在Windows上使用EDSDK,则必须在主线程中有一个Windows消息循环,否则不会发生回调. (这是因为EDSDK使用过时的COM sta线程模型,而不是真实线程.) 其他解决方案 佳能EDSDK被困在90年代,可怕.经过几天的比赛,它似乎不如尼康(Nikons)精致. 这些公司应像索尼一样对其所有相机实施基于HTTP的API.
16 2023-03-06
编程技术问答社区
Canon EDSDK在我的电脑中保存图像
我使用EOS 50D相机使用EDSDK v2.13. 我想将照片保存在我的主人中.我正在使用此代码(C ++): EdsOpenSession(camera); EdsInt32 saveTarget = kEdsSaveTo_Both; err = EdsSetPropertyData( camera, kEdsPropID_SaveTo, 0, 4, &saveTarget ); EdsCapacity newCapacity = {0x7FFFFFFF, 0x1000, 1}; err = EdsSetCapacity(camera, newCapacity); const char* ch_dest = "C:\\photo\\Img.jpg"; EdsCreateFileStreamEx( ch_dest ,kEdsFileCreateDisposition_CreateNew,kEdsAccess_ReadWrite,
14 2023-02-24
编程技术问答社区
需要使用SDK用单反相机录制视频
我希望能够控制数码单反相机以启动/停止录制视频. 佳能具有不错的SDK,但似乎不支持视频捕获. 有人知道尼康SDK是否支持这一点? 也许有一个可使用佳能的SDK拍摄视频的解决方法? 谢谢. 解决方案 使用佳能的SDK看来这是不可能的.我使用hack解决了此问题 - 使用USB -IR发射器,该发射器发送佳能遥控器使用的信号以开始/停止视频.丑陋但有效. 其他解决方案 另一个黑客:您可以捕获LiveView图像并将它们缝合到电影文件中.
28 2023-02-21
编程技术问答社区
CANON SDK为保存的JPG图像设置自定义白平衡。
我和我的一个朋友一直在努力弄清楚如何扩展自定义白平衡我们可以在现场视图上成功设置, 降至保存的JPG图像.我们正在使用佳能SDK 2.1.34 和一个EOD 600D摄像头,在C#中编程. 显然,这是将自定义图片模式应用于保存的图像的相同问题/过程.对我们来说,手册是隐秘的.有人有一个很好的例子吗? 谢谢! 费德里科 解决方案 在我的早期尝试和询问中复制,请 p> 据我所知, 在EDSDK中没有正确支持(也没有记录),也没有遇到公共解决方案.事实证明,很难在佳能(即使是在公司内部)进行良好的联系,这可以帮助我们所有人. EOS实用程序可以在内部执行此操作,但使用无证件的PTP调用(可以记录并进行反向工程). 不幸的是,您最好的选择是 射击原始,并在帖子中进行定制的白空平. ASTHOT WB只是随机的. 使用着色温度和自定义温度变化,近似白平衡.这些可以推入JPG.
26 2023-02-21
编程技术问答社区
如何在不改变长宽比的情况下裁剪图片
我需要作物一个图像而不改变其长宽比.我正在使用EDSDK从 canon1100d 拍摄照片.捕获的图像: 宽度= 1920 和高度= 1280 长宽比为 1.5 .但是我需要图片哪种纵横比为 1.33 . // convert into processing resolution (1600,1200) Image runtime_frm = new Image(frame.ToBitmap(1600,1200)); // also in bitmap processing // Bitmap a = new Bitmap(runtime_frm.ToBitmap()); // Bitmap b = new Bitmap(a, new Size(1600,1200)); 它正在调整图像大小,因此图像的纵横比已更改,但会在图像中产生压力.我想在运行时裁剪图像(1920x1280)至(1600x1200). 我该
14 2023-02-17
编程技术问答社区
使用edsdk 2.8拍摄照片并直接将图像保存到电脑上
我是EDSDK 2.8 的新手 目前,我的程序可以拍照.但是,当拍摄照片时,该图片暂时存储在佳能相机中的缓冲区中.我想知道如何将其保存到PC? 有人有任何想法吗?或c#或vb.net中的示例代码? 解决方案 这是我所做的: 首先,您必须在创建对象(即图片)时注册回调事件.我以我创建的"寄存器"方法做到了这一点: // Register OBJECT events edsObjectEventHandler = new EDSDK.EdsObjectEventHandler(objectEventHandler); error = EDSDK.EdsSetObjectEventHandler(this.CameraDevice, EDSDK.ObjectEvent_All, edsObjectEventHandler, IntPtr.Zero); if (EDSDK.EDS_ERR_OK != error) { th
18 2023-02-14
编程技术问答社区
如何在OpenCV中显示流媒体图像?
我想使用EDSDK实现实时视图功能.我已经使用EdsgetPointer获取存储器流的内存地址指针.现在,我想在PC上显示流图像. 我已经阅读了某些人在访视中使用API​​,例如ATL或CIMAGE,这些ATL或CIMAGE可以通过将存储器流的指针作为参数传递给流图像,并且该函数可以自身检索流图像.我正在考虑使用OpENCV来显示流图像,因为我在计算机上没有安装可录像带.我可以用来显示流媒体图像的OPENCV上的任何功能吗?还是我可以使用其他替代方案来处理来自EDSDK的流图像? 解决方案 您可以将数据包装到IplImage中,并在循环中使用cvShowImage显示: http://opencv.willowgarage.com/documentation/user_interface.html 下面是您与OpenCV事件循环绑定. 有其他选择.过去,我使用openGL将图像绘制为纹理,以便我可以管理视口,在其顶部绘制图像.一个好处是,只要该库带有OpenGL Ca
32 2023-02-04
编程技术问答社区
佳能EDSDK Liveview的C代码样本?
是否有任何人使用实现使用佳能EDSDK实时查看样品C code的工作一块?在文档中的示例code看起来不错,直到你到达此位: // //显示图像 // 是啊,就是这样。它们没有显示如何将图像BLT使用从相机获取的数据的窗口。他们只是说,“显示的图像”。谢谢,佳能 我已经猎杀了互联网(包括本论坛),但我还没有找到一个C code示例演示如何做到这一点。我期待,以避免MFC,VB,管理code或C#。当然,这是可能做到这一点香草C,对不对?香草C ++是罚款为好。 谢谢, FredP 解决方案 有两个功能,他们不告诉你:结果 1) EdsGetPointer 结果 2) EdsGetLength 这会给你一个指针JPEG视频流分别尺寸的开始。 一旦有了这种使用的libjpeg涡轮来DECOM preSS,的libjpeg 只是不够快 一旦DECOM preSS,您可以使用显示图像 OpenCV的。布尔CanonCamera :: downloadLiveViewImage(
1398 2022-07-19
编程技术问答社区