gpt4 book ai didi

android - 在 Android 上使用 OpenCV 将 Mat 元素缩放到 [0..255] 范围

转载 作者:太空宇宙 更新时间:2023-11-03 21:42:08 25 4
gpt4 key购买 nike

我正在尝试将一些 OpenCV python 代码转换为 Java,但我遇到了在 Java 包装器中查找正确函数的问题。有问题的 python 代码正在计算沿 x 轴的 Scharr 梯度:

# compute the Scharr gradient of the blackhat image and scale the
# result into the range [0, 255]
gradX = cv2.Sobel(blackhat, ddepth=cv2.CV_32F, dx=1, dy=0, ksize=-1)
gradX = np.absolute(gradX)
(minVal, maxVal) = (np.min(gradX), np.max(gradX))
gradX = (255 * ((gradX - minVal) / (maxVal - minVal))).astype("uint8")

[代码来自 pyimagesearch 网站 - 检测护照图像中的机器可读区域 - 博客文章]

我在 Java 中拥有的是:

Imgproc.Sobel(blackhat, gradX, CvType.CV_32F, 1, 0, -1, 1.0, 0, Core.BORDER_DEFAULT);
Core.convertScaleAbs(gradX, gradX);
Core.MinMaxLocResult minmax = Core.minMaxLoc(gradX);

这应该输出与 python 代码前三行相同的结果。但是我卡在了最后一个。如何使用 Java API 将 gradX 缩放回 [0..255] 范围?

convertScaleAbs 函数是否也执行与 NumPys absolute 相同的操作?

最佳答案

使用normalize使用 normType=NORM_MINMAX

关于android - 在 Android 上使用 OpenCV 将 Mat 元素缩放到 [0..255] 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com