小编use*_*803的帖子

更改OpenCV视频文件分辨率

我正在OpenCV(2.4.8)中创建一个程序,它应该读取视频文件并对它们进行一些计算.对于这些计算,我不需要高分辨率的帧,我完全没有640*360的分辨率.

在早期测试中,我连接了网络摄像头并使用了:

VideoCapture cap(0);
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 360);
Mat image;
cap.read(image);
namedWindow("firstframe", 1);
imshow("firstframe", image);
waitKey(0);
Run Code Online (Sandbox Code Playgroud)

这完美地调整了图像的大小.现在我进入下一步,我想用我的程序存储视频而不是实时源(我用于测试).当我用源文件路径(字符串)更改'0'时,文件被加载,但分辨率仍然是1920*1080.

我做错了什么吗?有没有办法以较低的分辨率"动态"加载视频?

我已经阅读了OpenCV文档.某些设置标记为"仅限摄像机",但此设置不是:http: //docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-videocapture

我在Mac上使用OpenCV,并使用MacPorts安装它.

如果需要更多细节,请与我们联系.

谢谢你的帮助

编辑: 我已经意识到cap.set(...)函数返回一个布尔值,所以我尝试将它们打印出来并且它们都返回0.这当然证实了框架没有调整大小.仍然没有任何线索,为什么......

编辑2: 所以现在,对于临时解决方案,我在读取(图像)后使用以下行:

resize(image, image, Size(640, 360), 0, 0, INTER_CUBIC);
Run Code Online (Sandbox Code Playgroud)

这很有效.但我猜这不是最理想的解决方案.

opencv resolution video-capture dimensions

9
推荐指数
1
解决办法
4万
查看次数

Jackson Unmarshall 自定义对象而不是 LinkedHashMap

我有一个 Java 对象结果

public class MetaData {
    private List<AttributeValue<String,Object>> properties
    private String name
    ...

    ... getters/setters ...
}
Run Code Online (Sandbox Code Playgroud)

的AttributeValue类是通用的键值类。可能嵌套了不同的 AttributeValue。(value) Object将是另一个 AttributeValue 等等。

由于遗留原因,无法更改此对象的结构。

我有我的 JSON,我尝试将其映射到此对象。对于常规属性,一切顺利。此外,列表的第一级填充有 AttributeValues。

问题是Object。Jackson 不知道如何解释这种嵌套行为,只是将其设为 LinkedHashMap。

我正在寻找一种实现自定义行为的方法来告诉杰克逊这必须是一个 AttributeValue 对象而不是 LinkedHashMap。

这就是我目前转换 JSON 的方式:

ObjectMapper om = new ObjectMapper();
MetaData metaData = om.readValue(jsonString, new TypeReference<MetaData>(){});
Run Code Online (Sandbox Code Playgroud)

这是示例 JSON。(这是通过将现有 MetaData 对象序列化为 JSON 获得的,我可以完全控制此语法)。

{
    "properties":[
        {
            "attribute":"creators",
            "value":[
                {
                    "attribute":"creator",
                    "value":"user1"
                },{
                    "attribute":"creator",
                    "value":"user2"
                }
            ]
        },{
            "attribute":"type",
            "value": "question"
        }
    ], …
Run Code Online (Sandbox Code Playgroud)

java json jackson

7
推荐指数
1
解决办法
7759
查看次数

Apache mod-x-sendfile 但用于远程 url

我正在编写一个 PHP 应用程序,用户可以在其中下载一些文件。并非所有文件都可以被所有用户下载,一些复杂的权限检查正在幕后进行。

由于此权限检查,我不想公开文件实际所在的 url,因为我想强制用户始终使用验证其凭据的端点。

在我当前的实现中,这都是使用 PHP(fread 等)编写的。为了最大限度地减少内存消耗,它被实现为一个流,这样 PHP 主要充当代理。

但我想只使用 PHP 进行身份验证,然后使用 Apache2 进行实际托管。环顾四周,似乎 X-Sendfile 是一个理想的选择。

使用 X-Sendfile 的唯一问题是它仅适用于本地文件,而我的文件位于远程存储服务器(而不是我的网络服务器)上。

所以基本上我有一个直接链接到我的存储服务器(我想隐藏):

https://storage.example.com/the-pet-goat.pdf

以及用户与之交互的公共链接:

https://www.example.com/randomized-id/download

我希望当用户访问https://www.example.com/randomized-id/download 时检查其凭据,如果成功,他应该(不可见地)重定向到存储服务器上的文件。

有没有办法实现这一点(使用Apache)?我找到了 X-Accel-Redirect,但那是针对 NGinx 的

我在 SO 上发现了一个类似的问题: Alternative to X-sendfile in Apache for sent file given a URL? 但那个是专门针对 S3、Apache(和 Ruby on Rails)的,而这个问题对于 Apache 来说更通用。

php apache2 x-sendfile

5
推荐指数
0
解决办法
630
查看次数