影像插件基类讲解

1、软件插件编写教程

2、基类【IRasterProcess】

影像处理插件的注册类都是从IRasterProcess继承。影像数据输入是使用了OpenCV中的图像句很Mat,处理完的影像数据也是通过Mat返回。通过IRasterProcess类,可以设置影像处理的块的大小,也可以设置影像保存的大小以及数据处理完之后的波段名称。

2.1、基类代码

#ifndef IRASTERPROCESS_H
#define IRASTERPROCESS_H

#ifndef IOBJECT_CORE_H
#include "core/iobject.h"
#endif /*IOBJECT_CORE_H*/

EXTERN_NAMESPACE_CLASS(cv, Mat)

BEGIN_DOX_NAMESPACE

class IRasterProcess
	: public IObject
{
	REGISTER_INTERFACE(IRasterProcess, IObject)

public:

	/* @接口 数据处理名称
	 * @类名 [IRasterProcess]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月11日
	 */
	virtual QString processName() = 0;

	/* @接口 影像处理之后的大小
	 * @参数 int 原图像宽度
	 * @参数 int 原图像高度
	 * @参数 int2 处理之后的图像大小
	 * @类名 [IRasterProcessManager]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月13日
	 */
	virtual int2 saveRasterSize(int, int) = 0;

	/* @接口 计算图像分块的大小
	 * @参数 int 图像宽度
	 * @参数 int 图像高度
	 * @返回 int2 图像块的大小
	 * @类名 [RasterDataConvert]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月11日
	 */
	virtual int2 processBlockSize(int, int) = 0;

	/* @接口 数据处理接口
	 * @参数 cv::Mat 待处理影像数据
	 * @参数 cv::Mat 处理完影像结果
	 * @类名 [IRasterProcess]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月9日
	 */
	virtual bool rasterProcess(const cv::Mat &, cv::Mat &) = 0;

};

END_DOX_NAMESPACE

#endif /*IRASTERPROCESS_H*/

2.2、接口讲解

2.2.1、数据处理名称


	/* @接口 数据处理名称
	 * @类名 [IRasterProcess]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月11日
	 */
	virtual QString processName() = 0;

这个接口主要用来设置影像处理的名称,此后这个名称会记录在波段名称中。
比如原波段名称为:band1、band2、band3、band4…
影像处理的名称为:波段运算
则处理完波段名为:band1 波段运算、band2 波段运算、band3波段运算、band4波段运算…

2.2.2、影像处理之后的大小

	/* @接口 影像处理之后的大小
	 * @参数 int 原图像宽度
	 * @参数 int 原图像高度
	 * @参数 int2 处理之后的图像大小
	 * @类名 [IRasterProcessManager]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月13日
	 */
	virtual int2 saveRasterSize(int, int) = 0;

这个接口主要是用来设置影像结果的大小。传入的两个参数是原始影像的宽高,返回值为影像结果的大小。
比如对影像进行旋转90度,那么原图像的宽为输出图像的高,原图像的高为输出图像的宽。

2.2.3、图像分块处理大小

	/* @接口 计算图像分块的大小
	 * @参数 int 图像宽度
	 * @参数 int 图像高度
	 * @返回 int2 图像块的大小
	 * @类名 [RasterDataConvert]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月11日
	 */
	virtual int2 processBlockSize(int, int) = 0;

2.2.4、影像数据处理

	/* @接口 数据处理接口
	 * @参数 cv::Mat 待处理影像数据
	 * @参数 cv::Mat 处理完影像结果
	 * @类名 [IRasterProcess]
	 * @邮箱 575814050@qq.com
	 * @时间 2020年10月9日
	 */
	virtual bool rasterProcess(const cv::Mat &, cv::Mat &) = 0;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值