code_device/hgdriver/hgdev/imgproc-pak/multi_out.h

130 lines
2.8 KiB
C++

#pragma once
// image processor
//
// created on 2023-11-14
//
// ver: 1.0
//
// NOTE: the interface is for all algorithms are in ONE module
#include <imgprc/img_processor.h>
#include <ImageMulti.h>
class multi_outer : public image_processor
{
int type_ = IMageMulti::ALL;
int threshold_ = 40;
int threshold_type_ = 0;
int block_size_ = 51;
int constant_ = 41;
public:
multi_outer();
static int type_from_str(const char* type);
protected:
virtual ~multi_outer();
public:
virtual int set_value(const char* name, void* val) override;
virtual void enable(const char* name, bool able) override;
virtual int process(std::vector<PROCIMGINFO>& in, std::vector<PROCIMGINFO>& out) override;
};
//{
// "is-multiout": {
// "cat": "base",
// "group": "base",
// "title": "多流输出",
// "desc": "同时输出多种颜色模式的图像",
// "type": "bool",
// "fix-id": 34817,
// "auth": 0,
// "size": 4,
// "cur": false,
// "default": false
// },
// "multiout-type": {
// "cat": "base",
// "group": "base",
// "title": "多流输出类型",
// "desc": "选择多流输出的类型",
// "type": "string",
// "fix-id": 34818,
// "auth": 0,
// "enabled": false,
// "size": 66,
// "cur": "彩色+灰度+黑白",
// "default": "彩色+灰度+黑白",
// "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"],
// "depend": "is-multiout==true"
// },
// "mo-threshold": {
// "cat": "base",
// "group": "imgp",
// "title": "多流黑白阈值",
// "desc": "多流输出黑白图像时的二值化阈值",
// "type": "int",
// "auth": 0,
// "size": 4,
// "cur": 40,
// "default": 40,
// "range": {
// "min": 1,
// "max": 255,
// "step": 1
// },
// "depend": "is-multiout==true"
// },
// "mo-bin-type": {
// "cat": "base",
// "group": "imgp",
// "title": "二值化方法",
// "desc": "多流输出黑白图像时的二值化方法",
// "type": "string",
// "auth": 0,
// "size": 28,
// "cur": "单阈值",
// "default": "单阈值",
// "range": ["单阈值", "大津阈值", "高斯局部自适应", "均值局部自适应", "错误扩散"],
// "depend": "is-multiout==true"
// },
// "mo-bin-block-size": {
// "cat": "base",
// "group": "imgp",
// "title": "二值化块大小",
// "desc": "多流输出黑白图像时的二值化块大小",
// "type": "int",
// "auth": 0,
// "size": 4,
// "cur": 51,
// "default": 51,
// "range": {
// "min": 5,
// "max": 200,
// "step": 1
// },
// "depend": "is-multiout==true"
// },
// "mo-bin-const": {
// "cat": "base",
// "group": "imgp",
// "title": "二值化常量",
// "desc": "多流输出黑白图像时的二值化常量",
// "type": "int",
// "auth": 0,
// "size": 4,
// "cur": 41,
// "default": 41,
// "range": {
// "min": 5,
// "max": 200,
// "step": 1
// },
// "depend": "is-multiout==true"
// }
//}