将检测到的文本设置为比图像更暗 - ccv
Posted
技术标签:
【中文标题】将检测到的文本设置为比图像更暗 - ccv【英文标题】:Set detected text darker than image - ccv 【发布时间】:2015-12-29 15:13:25 【问题描述】:我想更改 ccv swt 默认参数以更改算法参数。一些算法提供了屏幕亮度比文本更亮和更暗的搜索文本。我想在 ccv swt 中设置此选项,以使文本比屏幕更暗。
为了做到这一点,我想稍微玩一下 ccv_swt_param_t 结构。
这是 ccv.h 中的这个结构:
/* swt related method: stroke width transform is relatively new, typically used in text detection */
typedef struct
int interval; // for scale invariant option
int min_neighbors; // minimal neighbors to make a detection valid, this is for scale-invariant version
int scale_invariant; // enable scale invariant swt (to scale to different sizes and then combine the results)
int direction;
double same_word_thresh[2]; // overlapping more than 0.1 of the bigger one (0), and 0.9 of the smaller one (1)
/* canny parameters */
int size;
int low_thresh;
int high_thresh;
/* geometry filtering parameters */
int max_height;
int min_height;
int min_area;
int letter_occlude_thresh;
double aspect_ratio;
double std_ratio;
/* grouping parameters */
double thickness_ratio;
double height_ratio;
int intensity_thresh;
double distance_ratio;
double intersect_ratio;
double elongate_ratio;
int letter_thresh;
/* break textline into words */
int breakdown;
double breakdown_ratio;
ccv_swt_param_t;
extern const ccv_swt_param_t ccv_swt_default_params;
在 swtdetect.c 中,我正在更改源代码以放置我的新结构。我能够复制 struct 并将其传递给有趣的函数,但我从 swtdetect 得到消息
swtdetect: ccv_basic.c:196: ccv_sobel: Assertion `fsz % 2 == 1' failed.
这是我更改 swtdetect.c 的方式: 那是:
(...)
ccv_array_t* words = ccv_swt_detect_words(image, ccv_swt_default_params);
我玩了一点,改了:
ccv_swt_param_t *ptr = malloc( sizeof( &ccv_swt_default_params ) );
//ptr->max_height = 600;
(...)
ccv_array_t* words = ccv_swt_detect_words(image, *ptr);
我想要的只是使用最佳检测。我想将文本参数设置为比整个图像更暗。
这里,我以某种方式复制了struct,它应该是错误的,因为即使不更改任何参数,断言也会失败。
Here 是 swt 的文档。
【问题讨论】:
这是一个非常专业的问题。您应该添加更多相关标签。 【参考方案1】:好的。 我为默认的 const 结构分配了内存,但错过了分配它。
ccv_swt_param_t *ptr = malloc( sizeof( &ccv_swt_default_params ) );
***ptr = ccv_swt_default_params;**
(...)
ccv_array_t* words = ccv_swt_detect_words(image, *ptr);
【讨论】:
以上是关于将检测到的文本设置为比图像更暗 - ccv的主要内容,如果未能解决你的问题,请参考以下文章
如果设置为 true,AcceptsReturn 会禁用多行文本框中的 Key.Return 检测吗?