gpt4 book ai didi

java - OpenCV Java 修复图像格式要求

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:39 26 4
gpt4 key购买 nike

一直在尝试让修复在 Android 上工作,

int height = (int) viewMat.size().height;
int width = (int) viewMat.size().width;

Mat maskMat = new Mat();
maskMat.create(viewMat.size(), CvType.CV_8U);
maskMat.setTo(bColor);

Point r1 = new Point(width/2-width/10, height/2-height/10);
Point r2 = new Point(width/2+width/10, height/2+height/10);
Scalar color = new Scalar(1);

Core.rectangle(maskMat, r1, r2, color, Core.FILLED);

outMat.create(viewMat.size(), CvType.CV_8UC3);

viewMat.convertTo(outMat, CvType.CV_8UC3);

Photo.inpaint(outMat, maskMat, outMat, 1, Photo.INPAINT_TELEA);

受到欢迎,

Caused by: CvException [org.opencv.core.CvException: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/photo/src/inpaint.cpp:744: 
error: (-210) Only 8-bit 1-channel and 3-channel input/output images are supported in function void cvInpaint(const CvArr*, const CvArr*, CvArr*, double, int)

在 logcat 中。

尝试了数小时以各种方式创建垫子,但没有效果。

CV_8U = 每 channel 8 位,1 个 channel 。对吧?

CV_8UC3 = 每 channel 8 位,3 个 channel 。对吧?

那我错过了什么?我完全被难住了。

最佳答案

...
Point r2 = new Point(width/2+width/10, height/2+height/10);
Scalar color = new Scalar(1);

Core.rectangle(maskMat, r1, r2, color, Core.FILLED);

Imgproc.cvtColor(viewMat, outMat, Imgproc.COLOR_RGBA2RGB);

Photo.inpaint(outMat, maskMat, outMat, 1, Photo.INPAINT_TELEA);
...

原来这只是通过颜色转换摆脱 alpha channel 的问题。

关于java - OpenCV Java 修复图像格式要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19331442/

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