1

我正在努力根据不同色彩空间中特定像素之间的距离来识别对象,但在捕获图像时遇到了麻烦。我想从网络摄像头的实时视频中获取快照,但是当我得到它时,它看起来是蓝色的,如下图所示:

在此处输入图像描述

我用来捕获图像的代码:

obj=videoinput('winvideo',1);
preview(obj); start(obj);
A=getsnapshot(obj); 

我拥有的适配器是:

    in=imaqhwinfo(obj)

    in = 

                AdaptorName: 'winvideo'
                 DeviceName: 'Webcam-101'
                  MaxHeight: 120
                   MaxWidth: 160
             NativeDataType: 'uint8'
               TotalSources: 1
    VendorDriverDescription: 'Windows WDM Compatible Driver'
        VendorDriverVersion: 'DirectX 9.0'
4

3 回答 3

1

问题是您没有设置使视频变为 RGB 的属性,这将有所帮助;

 obj=videoinput('winvideo',1);
 set(obj,'ReturnedColorSpace', 'RGB');
 preview(obj); start(obj);
 A=getsnapshot(obj); 

这将使图像不再偏蓝

于 2014-04-03T10:41:23.237 回答
0

您可以添加此行:

 obj.ReturnedColorspace = 'rgb';

所以它变成:

obj=videoinput('winvideo',1);
obj.ReturnedColorspace = 'rgb';
preview(obj); start(obj);
A=getsnapshot(obj); 
于 2014-12-12T11:10:05.593 回答
-1

为了获得清晰的图像或快照,您可以使用键盘上的打印屏幕按钮,然后您可以将其粘贴到油漆或任何图像处理应用程序(如 Photoshop 等)上。

于 2013-10-28T08:54:47.720 回答