我正在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)
这很有效.但我猜这不是最理想的解决方案.
我有一个 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) 我正在编写一个 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 来说更通用。
apache2 ×1
dimensions ×1
jackson ×1
java ×1
json ×1
opencv ×1
php ×1
resolution ×1
x-sendfile ×1