表格线识别通用库文档
载入中...
搜索中...
未找到
image.h
浏览该文件的文档.
1/*
2 * @Description: 图片类 头文件
3 * @Version:
4 * @Autor: dreamy-xay
5 * @date: 2023-12-17
6 * @LastEditors: dreamy-xay
7 * @LastEditTime: 2024-05-28
8 */
9
10#ifndef COMMON_IMAGE_H
11#define COMMON_IMAGE_H
12
13#include <opencv2/core.hpp>
14#include <vector>
15
16#if defined(__linux__)
17#include <opencv2/imgproc/types_c.h>
18#endif
19
22#include "common/enum.h"
23#include "common/list/lines.hpp"
24#include "common/list/rects.hpp"
25#include "common/macro.h"
26#include "common/type.h"
28
29namespace cm {
30
38class Image : public cv::Mat {
39 public:
40 using cv::Mat::Mat;
41
42 Image();
43 Image(const Image& image);
44 Image(const cv::Mat& image);
45 ~Image();
46
47 cv::Size Size() const;
48
49 Image& Resize(size_t height, size_t width, int interpolation = cv::INTER_LINEAR);
51 Image& Scale(double factor, int interpolation = cv::INTER_LINEAR);
52
55 static double AdjustImageByGrayImage(cv::Mat& image, const cv::Mat& gray_image, uchar bg_gray_value, const std::vector<uchar>& thresholds);
56
58
59 Rects GetTextAreaOutline(size_t dilate_size, double max_aspect_ratio = 30) const;
60
61 Lines GetLines(LineType line_type, const ImagePreprocessor& imp, int threshold, double min_line_length, double max_line_gap = 10) const;
62
63 Image& ModifyLinesAreaValue(LineType line_type, const Lines& lines, int pixel_margin = 2, uchar pixel_value = 0);
64
65 Image InvertColorRegion(double min_area = 7000) const;
66
68
69 Image GetGrayHistogram() const;
70};
71
72} // namespace cm
73
74#endif
图像类
Definition image.h:38
Image SeparateColor(SeparatedColorType type) const
提取指定颜色像素图像
Definition image.cpp:592
Image & Scale(double factor, int interpolation=cv::INTER_LINEAR)
缩放图像
Definition image.cpp:145
Lines GetLines(LineType line_type, const ImagePreprocessor &imp, int threshold, double min_line_length, double max_line_gap=10) const
通过霍夫变换获取线
Definition image.cpp:416
Image InvertColorRegion(double min_area=7000) const
反转图像中的彩色块
Definition image.cpp:536
Image & ModifyLinesAreaValue(LineType line_type, const Lines &lines, int pixel_margin=2, uchar pixel_value=0)
修改图像中线所在区域的灰度值
Definition image.cpp:452
Image GetGrayHistogram() const
计算图像的灰度直方图
Definition image.cpp:634
Image & Resize(size_t height, size_t width, int interpolation=cv::INTER_LINEAR)
重新设置图像大小
Definition image.cpp:85
Rects GetTextAreaOutline(size_t dilate_size, double max_aspect_ratio=30) const
获取文本区域轮廓
Definition image.cpp:359
Image & RmRedBlueStamp(uchar bg_gray_value=255)
删除图像中的红色和蓝色印章
Definition image.cpp:164
Image & RmRedStamp(uchar bg_gray_value=255)
删除图像中的红色印章
Definition image.cpp:211
static double AdjustImageByGrayImage(cv::Mat &image, const cv::Mat &gray_image, uchar bg_gray_value, const std::vector< uchar > &thresholds)
通过灰度图像调整输入图像
Definition image.cpp:246
~Image()
图像类的析构函数
Definition image.cpp:54
Image()
图像类的默认构造函数
Definition image.cpp:21
cv::Size Size() const
获取图像的大小
Definition image.cpp:64
Image & HorizontalLengthSmooth(int threshold)
水平游程平滑
Definition image.cpp:296
图像预处理器类
线列表类
Definition lines.hpp:34
点类
Definition point.hpp:52
矩形列表类
Definition rects.hpp:28
LineType
线类型枚举
Definition enum.h:20
ResizeType
图片调整大小类型枚举
Definition enum.h:178
@ RT_AUTO
自动调整大小,支持放大和缩小图片
Definition enum.h:180
unsigned char uchar
无符号字符类型
Definition type.h:26
SeparatedColorType
支持分离的颜色类型枚举
Definition enum.h:164