- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个应用程序 (openCV - C++) 从网络摄像头抓取图像,将其编码为 JPG 并将其从服务器传输到客户端。 Thwebcam 是立体的所以实际上我有两个图像,左和右。在客户端中,当我收到图像时,我对其进行解码并生成立体 3D 效果。为此,我使用 OpenCV ...好吧,我以这种方式对图像进行编码:
params.push_back(CV_IMWRITE_JPEG_QUALITY);
params.push_back(60); //image quality
imshow(image); // here the anagliphic image is good!
cv::imencode(".jpg", image, buffer, params);
并以这种方式解码:
cv::Mat imageRecieved = cv::imdecode( cv::Mat(v), CV_LOAD_IMAGE_COLOR );
我看到的是,这种编码在立体图像中生成了“重影效果”(伪影?),因此对象的边缘效果不好。例如,如果看一扇门,门的边缘会产生鬼影效果。我确信这取决于编码,因为如果我在编码指令之前显示 Anaglyph 图像,则效果很好。我不能使用 PNG,因为它会生成大图像,这是服务器和客户端之间的连接问题。
我在寻找 GIF,但如果我理解得很好,cv::encode 函数不支持它。
那么还有另一种方法可以将 cv:Mat obj 编码为 JPG 而不会产生这种不良影响并且不会增加图像的大小吗?
最佳答案
如果您的服务器仅用作图像存储,您可以将 2 个原始立体图像(压缩)发送到服务器,并在需要时生成 Anaglyph。我认为,如果您从服务器获取图像对 (JPEG),然后生成 Anaglyph(客户端),它将不会出现重影。可能是组合的压缩图像对小于 Anaglyph .png
。
关于c++ - 使用 OpenCV 以 JPG 格式编码图像以避免重影效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984356/
如何在拖动图像时去除重影。我们已经尝试过代码,它可以在 Firefox 和 chrome 中运行,但不能在 Safari 中运行。请任何人帮助我的代码有什么错误。 https://jsfiddle.n
我做了一个小程序: 将 Canvas 内的鼠标光标更改为黑色方 block 给黑色方 block 留下一条漂亮的轨迹,随着时间的推移逐渐消失(程序的要点) 代码如下: var canvas = doc
我使用 CALayer 的自定义扩展绘制为可滚动图形,并在 [MyCustomCALayer drawInContext] 中调用了一堆 CGContextAddCurveToPoint。 我实际上并
好吧,我刚刚开始学习java(我通常用Objective-C 编程)。我的第一款游戏是一款类似于神奇宝贝的游戏,但是,它显然要简化得多...... 我遇到的麻烦是我找不到方法来阻止 2 个 Sprit
我一直在尝试设置一个 javascript 游戏循环,但我遇到了两个问题。我发现在 chrome 中,当我失去浏览器窗口的焦点,然后单击返回我正在运行的动画时,会发生这种奇怪的“ catch ”事情,
在我将其切换为使用 DrawerLayout 内的 fragment 之前,我的布局工作正常。之后,主视图中的 ListView 在滚动时会重影列表的副本。 ListView 内容滚动,但第一页的副本
我是一名优秀的程序员,十分优秀!