在EOS上使用LiveView很有趣,可以帮助对象获得焦点(在不提供自动对焦的目标情况下)。放大LiveView图像(流)确实有助于聚焦。
在相机网站上,您可以使用带有放大镜图标的按钮将LiveView图像放大5倍和10倍。这对我的600D来说很好。
使用EDSDK编程我遇到了一个问题:可以通过编程方式为LiveView设置5倍缩放模式。但是我在10x模式下没有成功。
有没有人成功地实现了缩放LiveView并将LiveView图像缩放到5倍以上?
为了成功实现5倍LiveView缩放,我在600D上使用了以下代码:
//启动LiveView,等待屏幕上出现流,然后执行:
_iZoomStage= 5;
bool Success=_CameraHandler.SetSetting(EDSDK.PropID_Evf_Zoom,(UInt32) _iZoomStage);
这很好用,但是:如果你试图获得更高的缩放因子,那就失败了。成功返回true,但在屏幕上看不到效果。如果你对相机本身进行LiveView缩放,按下“放大镜”按钮10倍就可以了。但在编程上,我没有成功地获得大于5的值。
对这个话题有什么想法吗?
发布于 2015-07-27 14:44:32
好了,非常感谢你的回答。
同时,我做了以下变通方法,这似乎解决了问题。我只是在LiveView流媒体期间裁剪和缩放位图:
if(_zoomFactorOfEdskd == true) // That is 1 and 5
g.DrawImage(_LiveViewStreamedBmp,_LvOutput);
else // Our own ones which do not work with EDSDK
{
Int32 newWidth= (Int32)(_LiveViewStreamedBmp.Width / _zoomFactor);
Int32 newHeight= (Int32)(_LiveViewStreamedBmp.Height / _zoomFactor);
// Cropping around the center of the original bitmap
Int32 xOffset= (_LiveViewStreamedBmp.Width-newWidth)/2;
Int32 yOffset= (_LiveViewStreamedBmp.Height-newHeight)/2;
Rectangle rectSource=new Rectangle(xOffset, xOffset, newWidth,newHeight);
Rectangle rectTarget=new Rectangle( 0, 0, _LiveViewStreamedBmp.Width, _LiveViewStreamedBmp.Height);
// Do the zoomed output...
g.DrawImage(_LiveViewStreamedBmp,rectTarget,rectSource,GraphicsUnit.Pixel);
}请注意,当_zoomFactor低于5x (表示2.0和3.0之间的值)时,会出现“非常好”的结果。如果你在这里使用了太强的缩放值,你会得到“像素”,图像太大了(你可能看不到任何东西)。
也许定义_zoomFactor的值是个好主意,这样它就更符合佳能对"5x“或"10x”的理解。但就目前而言,这种变通方法可能会起作用。
向格哈德·考尔致敬
发布于 2017-02-20 05:09:10
我也遇到过同样的问题(在5D Mark IV上)--实际上只有5倍的缩放是可能的,而对于10倍的缩放,你应该自己缩放返回的位图。
然而:它似乎不是一个bug,而是一个非常糟糕的文档功能(即根本没有文档)。SDK实际上会给出额外的数据,提示你应该进行软件缩放,并给出精确的坐标。所以我是这样理解的:
假设我们有一个分辨率为1000 x 1000像素的传感器,我们想要在中心放大10倍。然后在我的测试中会发生这样的事情:
kEdsPropID_Evf_ZoomRect会返回450:450的位置和100x100的大小-所有这些都是因为kEdsPropID_Evf_ZoomPosition返回450:450 -这也是预期的。,
kEdsPropID_Evf_ImagePosition,你可以知道这个位图的实际位置。这将返回400:400位置,因此可用于计算返回位图的最终裁剪和放大。因此,虽然user3856307的代码应该可以工作,但相机可能有一些限制(例如在可被32整除的位置上返回位图),因此在我看来,合并kEdsPropID_Evf_ImagePosition应该会提供更精确的结果。
https://stackoverflow.com/questions/31634533
复制相似问题