文章40 | 阅读 20737 | 点赞0
超分类型 | 效果 | 支持图片较长边最大像素数 | 支持图片较短边最大像素数 |
---|---|---|---|
1x | 不改变图片的尺寸,但可以智能识别、抑制图片本身的压缩噪声,令图片更加干净清晰 | 1920 | 1080 |
3x | 图片的边长放大3倍 | 1024 | 768 |
void setVisionConfiguration(SisrConfiguration config);
接口 | 参数名 | 类型 | 参数说明 |
---|---|---|---|
setScale() | scale | float | 设置超分倍数。目前支持SisrConfiguration.SISR_SCALE_1X和SisrConfiguration.SISR_SCALE_3X |
setScale() | void | void | 设置超分倍数为默认值SisrConfiguration.SISR_SCALE_1X |
setQuality() | quality | int | 设置超分质量。目前支持的参数类别为<br>SisrConfiguration.SISR_QUALITY_LOW、<br>SisrConfiguration.SISR_QUALITY_MEDIUM和<br>SisrConfiguration.SISR_QUALITY_HIGH。<br>但该入参目前并未实际使用,无论如何设置都会执行当前能力下的最高质量超分。 |
setQuality() | void | void | 设置返回图片的超分质量为SisrConfiguration.SISR_QUALITY_HIGH |
int doSuperResolution(VisionImage image, ImageResult result, VisionCallback<ImageResult> visionCallback);
import ohos.ai.cv.common.ConnectionCallback;
import ohos.ai.cv.common.VisionCallback;
import ohos.ai.cv.common.VisionImage;
import ohos.ai.cv.common.VisionManager;
import ohos.ai.cv.common.ImageResult;
import ohos.ai.cv.sr.IImageSuperResolution;
import ohos.ai.cv.sr.SisrConfiguration;
import ohos.app.Context;
import ohos.media.image.PixelMap;
ConnectionCallback connectionCallback = new ConnectionCallback() {
@Override
public void onServiceConnect() {
// 定义连接能力引擎成功后的操作。
}
@Override
public void onServiceDisconnect() {
// 定义连接能力引擎失败后的操作。
}
};
int result = VisionManager.init(context, connectionCallback);
VisionImage image = VisionImage.fromPixelMap(pixelMap);
ImageResult imageResult = new ImageResult();
VisionCallback<ImageResult> callback= new VisionCallback<ImageResult>() {
@Override
public void onResult(ImageResult imageResult) {
// 对正确获得图片超分结果进行处理
}
@Override
public void onError(int i) {
// 处理错误返回码
}
@Override
public void onProcessing(float v) {
// 返回处理进度
}
};
SisrConfiguration.Builder builder = new SisrConfiguration.Builder();
builder.setProcessMode(VisionConfiguration.MODE_IN);
SisrConfiguration config = builder.build();
config.setScale(SisrConfiguration.SISR_SCALE_3X);
config.setQuality();
imageSuperResolution.setVisionConfiguration(config);
result = imageSuperResolution.prepare();
result = imageSuperResolution.doSuperResolution(image, imageResult, null); // 同步
// 或
result = imageSuperResolution.doSuperResolution(image, null, callback); // 异步
结果码 | 说明 |
---|---|
0 | 成功 |
-1 | 未知错误 |
-2 | 不支持的功能或接口 |
-3 | 内存分配失败或创建对象失败 |
-4 | 所需库加载失败 |
-10 | 引擎开关已经关闭 |
101 | 失败 |
102 | 超时 |
200 | 输入参数不合法(图片尺寸错误) |
201 | 输入参数不合法(为空) |
210 | 输入参数合法 |
500 | 服务绑定异常 |
521 | 服务绑定异常断开 |
522 | 服务已连接 |
600 | 模型文件异常 |
601 | 模型文件不存在 |
602 | 模型加载失败 |
700 | 异步调用请求发送成功 |
1001 | 神经网络处理单元错误 |
result = imageSuperResolution.release();
if (pixelMap != null) {
pixelMap.release();
pixelMap = null;
}
VisionManager.destroy();
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/Forever_wj/article/details/118332992
内容来源于网络,如有侵权,请联系作者删除!