Java 相当于 opencv c++ Mat->data[]

标签 java opencv opacity

我遇到了这个在背景上叠加透明图像的功能。 https://gist.github.com/maximus5684/082f8939edb6aed7ba0a

它在 C++ 中工作得很好。但是在转换回java时。我无法找到与此特定的等效 Java 调用。

双倍不透明度 = ((double)overlay->data[fY * 覆盖->step + fX * 覆盖->channels() + 3])/255;

我正在使用官方 Opencv Java 绑定(bind)版本 3.1 将其转换为 java。 谁能指导我正确的方向?

最佳答案

也不推荐使用 OpenCV C++ API。您有模板Mat::at相反,它允许您通过引用检索矩阵特定点的值:

double opacity = static_cast<double>(overlay->at<unsigned char>(fy, fx, 3));

由于 Java 没有指针算术,也没有对数组元素的纯引用,因此绑定(bind)提供了 getput 方法重载。如果我没记错的话,你应该尝试这样的事情:

double opacity = overlay.get(fy, fx)[3] / 255.;
src.put(y, x, srcPx * (1. - opacity) + overlayPx * opacity);

关于Java 相当于 opencv c++ Mat->data[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756670/

相关文章:

css - 不透明度在 IE8 中不起作用

html - 悬停时覆盖透明图像

java - Java 类中的多个接口(interface) - 哪个用于方法调用?

java - 使用函数式编程在java中关闭文件

java - 如何更改两个位置之间的文本颜色?

c# - 如何在 OpenCV 和 C# 中进行霍夫变换?

python - OpenCV Python:distCoeffs2不是数字元组

CSS div 不透明度仅在外部 div

java - Android 中使用 Java 向 SQLITE 数据库插入数据失败?

c++ - 如何在opencv中读取具有透明像素的tif图像