其他分享
首页 > 其他分享> > HarmonyOS之AI能力:图像超分辨率

HarmonyOS之AI能力:图像超分辨率

作者:互联网

一、基本概念

二、约束与限制

超分类型效果支持图片较长边最大像素数支持图片较短边最大像素数
1x不改变图片的尺寸,但可以智能识别、抑制图片本身的压缩噪声,令图片更加干净清晰19201080
3x图片的边长放大3倍1024768

三、应用场景

四、API 说明

	void setVisionConfiguration(SisrConfiguration config);
接口参数名类型参数说明
setScale()scalefloat设置超分倍数。目前支持SisrConfiguration.SISR_SCALE_1X和SisrConfiguration.SISR_SCALE_3X
setScale()voidvoid设置超分倍数为默认值SisrConfiguration.SISR_SCALE_1X
setQuality()qualityint设置超分质量。目前支持的参数类别为
SisrConfiguration.SISR_QUALITY_LOW、
SisrConfiguration.SISR_QUALITY_MEDIUM和
SisrConfiguration.SISR_QUALITY_HIGH。
但该入参目前并未实际使用,无论如何设置都会执行当前能力下的最高质量超分。
setQuality()voidvoid设置返回图片的超分质量为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 one rror(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();

标签:调用,AI,分辨率,超分,HarmonyOS,result,ohos,SisrConfiguration,图片
来源: https://blog.csdn.net/Forever_wj/article/details/118332992