- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Android 应用程序中,我从图库中获取了一张位图图像,内容如下
Bitmap bitm = getMyImage("Thanks!");
我有一个名为 mat 的 Mat,声明如下:
Mat mat = new Mat(bitm.getHeight(), bitm.getWidth(), CVType.CV_8UC3);
我正在尝试从图像中获取轮廓区域,我已经成功获得了轮廓区域,然后将其绘制回原始图像上:
Imgproc.drawContours(mat, contours, -1, new Scalar(200,200,0), 2);
displayMat(mat);
如果我这样使用它,它可以工作,但轮廓是在空白图像上绘制的,这不是我想要的。我希望它画在原始图像上。如果我使用
Utils.bitmapToMat(bitm, mat);
在前面的代码 fragment 之前,显示的图像只是经过预处理的图像,没有“绘制”轮廓。为什么?
最佳答案
Asfaik Android 使用带有 Alpha 值的图像,因此 CV_8UC4
是正确的数据类型。
所以
Mat mat = new Mat(bitm.getHeight(), bitm.getWidth(), CVType.CV_8UC3);
Imgproc.drawContours(mat, contours, -1, new Scalar(200,200,0), 2);
显示Mat(垫);
在空/空白 8UC3
图像上正确绘制轮廓(如果内存为空)。
但是,如果您想通过首先转换 Utils.bitmapToMat(bitm, mat);
在输入图像上绘图,您将覆盖 8UC3
内存并将其替换为8UC4
数据。之后,您绘制将使用第四个 channel 的 Scalar(200,200,0)
,但 cv::Scalar
会自动添加具有默认零值
的这些 channel >,这样你就可以用透明的方式绘制轮廓。因此,请使用 Scalar(200,200,0,255)
来代替,它应该会给出您预期的结果。
Mat mat = new Mat(bitm.getHeight(), bitm.getWidth(), CVType.CV_8UC3);
Utils.bitmapToMat(bitm, mat);
Imgproc.drawContours(mat, contours, -1, new Scalar(200,200,0,255), 2);
显示Mat(垫);
另一种方法是将位图转换为 8UC3,但我不知道该怎么做。
关于java - Imgproc.drawContours(....) 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777746/
我目前正在开发一个关于人脸识别的 Android 应用程序。所以我从 github 获取了一个源代码。它使用 OpenCv,但源代码使用的是旧版本的 OpenCv,而我使用的是最新版本 3.0.0。代
以下函数中参数4的含义是什么? Imgproc.cvtColor(pointMatHsv, pointMatRgba, Imgproc.COLOR_HSV2RGB_FULL, 4); 最佳答案 Img
我是opencv和Java的初学者。我想学习Imgproc.findContours()方法的用法和功能。我没有任何资料可以学习。谁能详细解释一下它的工作原理。或有人可以建议我作为学习它的合适资源。
在我的 Android 应用程序中,我从图库中获取了一张位图图像,内容如下 Bitmap bitm = getMyImage("Thanks!"); 我有一个名为 mat 的 Mat,声明如下: Ma
我将 OpenCV 2.4.11 用于带有 OpenCvBinding 的 Xamarin.Android。我试图找到图像中最大的颜色区域。 static public Tuple GetArea(B
OpenCV 的 imgproc 和 feature2d 模块都具有特征检测功能,但是我在任何地方都没有看到任何解释两者之间差异以及为什么 OpenCV 有两个不同部分具有相同名称的文本。 拜托,有人
Java视频应用使用 Imgproc.undistort(frameIn,frameout_undist,cameraMatrix,distCoeffs,camUndistortMatrix); 使用
当我编译并运行这段代码时,出现错误。它可以编译,但是当我尝试运行它时,它会出现以下错误: 应用程序已请求运行时以异常方式终止。 这是代码: #include #include int main()
我正在尝试在 Xamarin 上开发移动应用程序。首先,我正在为 Android 设备做这件事。我希望 Oncamera 功能能够自动检测轮廓并测量物体的大小。作为主要步骤,我正在尝试实时检测轮廓。阅
--请参阅下面的更新/答案。用户错误!-- 我正在尝试了解如何在 Imgproc.HoughLines() 中设置参数以找到较短的行。我试过这样的东西,但根本不起作用: Imgproc.HoughLi
我是新手 OCV 和 android 开发人员。我想在我的应用程序中使用 Imgproc.GaussianBlur 过滤器。当我使用它时,应用程序发送“应用程序已停止”。我只在“OpenCV 教程 3
每次使用 opencv 中的图像处理函数时,都会出现 C++ 运行时错误。 这是我的代码,我得到“应用程序已请求以异常方式终止它” #include #include int main() {
我是 OpenCV 的新手。遵循了 openCV 教程。现在,当我构建项目时,错误就来了。它说未找到包含目录 imgproc.hpp。当我检查 opencv/include/opencv2 文件夹时,
我需要 OpenCV Java 2.4.9 和 3.1 的一些方法,但是 3.1 版本的 Imgproc 类没有 copyMakeBorder() 方法,而它存在于 2.4 版本中。 9.请注意,如果
我在图像上找到了一个 rotatedRect,我想检索这个 rotatedRect 中所有像素的子矩阵。我在这个主题上找到了这个 C++ 代码:http://answers.opencv.org/qu
我对 OpenCV4Android 有疑问。 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exampl
我正在打电话: Imgproc.matchTemplate(image, templ, result, 0); 并且匹配的结果在一个 Mat 实例中。我找不到此类的任何文档。如果我理解正确,结果包含一
当我运行时: @Test public void funkyTriangleContour2_forStack_works() { final var points =
我正在尝试在使用 React Native 编写的移动应用程序中使用 OpenCV。现在我只关注Android部分。我使用 Android 版的官方 OpenCV。我确实添加了 sdk,修改了我的 M
我已经从 itseez 的 github 下载了 opencv 3.0 的最新主分支和额外模块。按照使用模块编译 opencv 3.0 的说明,我在 Ubuntu 14.04 上使用了以下命令行 cm
我是一名优秀的程序员,十分优秀!