130 lines
2.8 KiB
C
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"
|
|||
|
// }
|
|||
|
//}
|