影像處理第二篇之波段運算(軟體外掛篇)
影像處理第二篇之波段運算
1、外掛編寫教程
2、影像外掛基類講解
3、波段運算
3.1、波段運算檔案
#ifndef IRASTERPROCESS_H
#include "seed_rastercore/irasterprocess.h"
#endif /*IRASTERPROCESS*/
BEGIN_DOX_NAMESPACE
class RasterProcessBandOperator
: public IRasterProcess
{
REGISTER_ACTUALIZE(RasterProcessBandOperator, IRasterProcess)
public:
/* @介面 預設建構函式
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷RasterDataConvert
* @郵箱 575814050@qq.com
* @時間 2020年3月14號
*/
RasterProcessBandOperator();
/* @介面 預設建構函式
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷
* @郵箱 575814050@qq.com
* @時間 2020年3月14號
*/
~RasterProcessBandOperator();
/* @介面 資料處理名稱
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷
* @郵箱 575814050@qq.com
* @時間 2020年10月11日
*/
virtual QString processName();
/* @介面 處理完之後的波段集合索引
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷
* @郵箱 575814050@qq.com
* @時間 2020年10月19日
*/
virtual IntsArray processBandMap(int);
/* @介面 處理的塊的大小
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷
* @郵箱 575814050@qq.com
* @時間 2020年10月11日
*/
virtual int2 processBlockSize(int, int);
/* @介面 影像處理之後的大小
* @引數 int 原影像寬度
* @引數 int 原影像高度
* @引數 int2 處理之後的影像大小
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷
* @郵箱 575814050@qq.com
* @時間 2020年10月13日
*/
virtual int3 saveRasterSize(int, int, int);
/* @介面 資料處理介面
* @引數 cv::Mat 待處理影像資料
* @引數 cv::Mat 處理完影像結果
* @類名 [RasterProcessBandOperator]
* @作者 楊發荷
* @郵箱 575814050@qq.com
* @時間 2020年10月9日
*/
virtual bool rasterProcess(const cv::Mat &, cv::Mat &);
};
END_DOX_NAMESPACE
3.2、波段運算原始檔
BEGIN_DOX_NAMESPACE
RasterProcessBandOperator::RasterProcessBandOperator()
: IRasterProcess()
{
}
RasterProcessBandOperator::~RasterProcessBandOperator()
{
}
QString RasterProcessBandOperator::processName()
{
return QS("波段運算");
}
IntsArray RasterProcessBandOperator::processBandMap(int bandCount)
{
IntsArray bandMaps; Ints bandMap;
bandMap << 1 << 2; bandMaps.append(bandMap);
return bandMaps;
}
int2 RasterProcessBandOperator::processBlockSize(int xSize, int ySize)
{
return int3(xSize, ySize);
}
bool RasterProcessBandOperator::rasterProcess(const Mat &srcMat, Mat &desMat)
{
int row = srcMat.rows; int col = srcMat.cols;
vector<Mat> mats; split(srcMat, mats);
if(mats.size() != 2) return false;
desMat = Mat(row, col, CV_MAKE_TYPE(srcMat.depth(), 1));
for(int _row = 0; _row < row; ++_row)
{
for(int _col = 0; _col < col; ++_col)
desMat.at<double>(_row, _col) = fabs(mats[0].at<double>(_row, _col) - mats[1].at<double>(_row, _col));
}
return true;
}
int3 RasterProcessBandOperator::saveRasterSize(int xSize, int ySize, int bSize)
{
return int3(xSize, ySize, 1);
}
END_DOX_NAMESPACE
4、註冊波段運算類
#ifndef MODULEMACRO_CORE_H
#include "core/modulemacro.h"
#endif /*MODULEMACRO_CORE_H*/
#include "rasterrotate.h"
BEGIN_DOX_NAMESPACE
BEGIN_DEFINE_DOX_MODULE("rastercore")
XDEFINE_CLASSMAP_ENTRY_NORMAL(RasterProcessBandOperator)
FINISH_DEFINE_DOX_MODULE()
END_DOX_NAMESPACE
5、新增波段運算函式
void bandOperator()
{
Object<IRasterProcess> iRasterProcess("rastercore.RasterProcessBandOperator");
Object<IRasterProcessManager> iRaster(NIL); iRaster->rasterProcess(iRasterProcess);
}
6、註冊波段運算命令
void initApplication()
{
dox::Object<dox::IDoxCommand> cmd(NIL);
cmd->registerCommand("rastercore", "bandOperator", bandOperator);
}
7、執行波段運算功能
7.1、選擇資料
7.2、選擇儲存的檔案
7.3、瀏覽軟體之後的資料
相關文章
- Python 影像處理 OpenCV (10):影像處理形態學之頂帽運算與黑帽運算PythonOpenCV
- 黑白影像處理的Ps外掛
- Python 影像處理 OpenCV (9):影像處理形態學開運算、閉運算以及梯度運算PythonOpenCV梯度
- HDR影像便捷處理軟體
- Repix Pro for Mac影像處理軟體Mac
- Mac上RAW影像處理軟體Mac
- 影像處理領域的加速運算元收集
- Python 影像處理 OpenCV (4):影像算數運算以及修改顏色空間PythonOpenCV
- Perfectly Clear Workbench 影像清晰處理軟體
- RAW Power for Mac(RAW影像處理軟體)Mac
- 全能的影像處理軟體:inPixel for MacMac
- Perfectly Clear Workbench 影像清晰處理軟體
- Photomatix Pro for Mac(HDR影像處理軟體)Mac
- Zsh 開發指南(第二篇 字串處理之常用操作)字串
- sklearn 第二篇:資料預處理
- Perfectly Clear Workbench mac(影像清晰處理軟體)Mac
- Perfectly Clear Workbench for mac(影像清晰處理軟體)Mac
- Capture One Pro 22(raw影像處理軟體)APT
- Affinity Photo for Mac(專業影像處理軟體)Mac
- RAW影像處理軟體:Capture One Pro 22APT
- Perfectly Clear Workbench for mac 影像清晰處理軟體Mac
- 影像清晰處理軟體:perfectly clear workbench macMac
- webgl 影像處理 加速計算Web
- 影像處理基礎篇(一)
- nginx對listen埠的處理 -- 第二篇Nginx
- 影像清晰處理軟體Mac版:Perfectly Clear WorkbenchMac
- Pixelmator pro for Mac(強大的影像處理軟體)Mac
- Mac RAW影像處理軟體:Capture One Pro 22MacAPT
- Capture One Pro 22 for Mac(RAW影像處理軟體)APTMac
- Capture One Pro 21 for Mac(RAW影像處理軟體)APTMac
- 影像處理之骨架提取
- Python影像處理丨三種實現影像形態學轉化運算模式Python模式
- Python 影像處理 OpenCV (12): Roberts 運算元、 Prewitt 運算元、 Sobel 運算元和 Laplacian 運算元邊緣檢測技術PythonOpenCV
- 醫學影像處理相關軟體及python包Python
- mac上好用的影像噪點處理軟體分享Mac
- Perfectly Clear QuickDesk Mac(影像最佳化處理軟體)UIMac
- Mac強大的raw影像處理軟體:RAW PowerMac
- 影像清晰處理軟體:Perfectly Clear Workbench 中文啟用