小编Mar*_*ona的帖子

扩展.d.ts文件中定义的接口

在我的TypeScript项目中,我对外部js依赖项使用DefinitelyTyped定义.

有时可能会发生这些定义过时的情况.它也可能发生在某些库可以在运行时添加新方法,例如express-validator,您可以在其中定义自定义验证器函数.

因此,我想扩展这些.d.ts定义,添加新的方法和/或属性.

所以,如果我有我的DefinitelyTyped defininiton express-validator.d.ts:

declare module ExpressValidator {
  export interface Validator {
    is(): Validator;
    not(): Validator;
    isEmail(): Validator;
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能扩展Validator界面,例如我的application.ts

///<reference path='../typings/tsd.d.ts' />

import expressValidator = require('express-validator');
export var app = express();

app.use(expressValidator({
    customValidators: {
        isArray: function(value) {
            return Array.isArray(value);
        }
 }
}));

// How to extend Validator interface adding isArray() method??
Run Code Online (Sandbox Code Playgroud)

extends interface typescript definitelytyped

27
推荐指数
2
解决办法
2万
查看次数

将Python序列转换为NumPy数组,填充缺失值

可变长度列表的Python序列隐式转换为NumPy数组会导致该数组为object类型.

v = [[1], [1, 2]]
np.array(v)
>>> array([[1], [1, 2]], dtype=object)
Run Code Online (Sandbox Code Playgroud)

试图强制其他类型将导致异常:

np.array(v, dtype=np.int32)
ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)

通过使用给定的占位符填充"缺失"值,获得int32类型的密集NumPy数组的最有效方法是什么?

从我的样本序列中v,我想得到类似的东西,如果0是占位符

array([[1, 0], [1, 2]], dtype=int32)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy sequence variable-length-array

17
推荐指数
3
解决办法
6383
查看次数

使用模糊文本改进Tesseract OCR结果

我正致力于OCR识别印刷文本.特别是我专注于预处理步骤,以改善Tesseract引擎的结果.我已经通过自适应阈值处理,噪声消除,文本偏移校正等获得了良好的结果......但是当其他商业产品返回不错的结果时,Tesseract似乎也失败了.

我使用以下测试图像,这是使用Tesseract 3.04与两个商业OCR apis相比获得的结果.所有3个服务都提供了相同的二进制图像,其中包含一些略微模糊的文本.

用于比较3种OCR产品的文本图像

正方体

Careers in Technology Consulting

Networking Lunch
21 m 2014, 11:00 - 14:30

Definingthecorporatellstmtegy, Wammmwdngdeal, creating
uniquebwinessisighnwilgbigdam-does?ism?xemmyoua?oy?

Findoutmoreabanhowitfeektomkasatedl?ogymbyjoiningour

for further mm please visit mAeloittexom/weers
Run Code Online (Sandbox Code Playgroud)

ABBYY Fine Reader Online

Careers in Technology Consulting
Networking Lunch
21 November 2014,1140-14:30
Defining the corporate IT strategy, planning a multHnKon <Mar outsourcing deal, creating unique business insights using big data-doesthis sound Ifce something you enjoy?
Find out more about hour it feels to work as a technology consultant by …
Run Code Online (Sandbox Code Playgroud)

ocr tesseract image-processing motion-blur

12
推荐指数
1
解决办法
2284
查看次数

OpenCV 3.0.0 MSER二进制掩码

我试图在OpenCV 3.0.0 beta中使用MSER算法从图像中提取文本区域.最后,我需要一个带有检测到的MSER区域的二进制掩码,但该算法仅提供轮廓.我试图绘制这些轮廓但我没有得到预期的结果.

这是我使用的代码:

void mserExtractor (const Mat& image, Mat& mserOutMask){
    Ptr<MSER> mserExtractor  = MSER::create();

    vector<vector<cv::Point>> mserContours;
    vector<cv::Rect> mserBbox;
    mserExtractor->detectRegions(image, mserContours, mserBbox);

    for( int i = 0; i<mserContours.size(); i++ )
    {
        drawContours(mserOutMask, mserContours, i, Scalar(255, 255, 255), 4);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是结果: OPENCV MSER

问题是非凸区域由穿过实际MSER区域的线填充.我想像我从MATLAB获得的区域像素列表detectMSERFeatures: MATLAB MSER

任何想法如何从轮廓中获取填充区域(或以其他方式获取MSER掩码)?

c++ opencv mser matlab-cvst opencv-drawcontour

9
推荐指数
1
解决办法
7842
查看次数

实施HTTP到HTTPs重定向,保留Google Analytics引荐来源

Google Analytics(分析)显示了可疑数量的(direct)/(none)网站来源.我知道当HTTP网站从HTTPs网站链接时,引用者信息会丢失.

就我而言,我有一个安全的网站https://example.com,我使用以下Apache设置转发用户,以防他们尝试访问非安全版本:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
Run Code Online (Sandbox Code Playgroud)

当然,我无法控制外部(安全)网站是否通过http或https链接我.

现在我的问题是:

  • 为什么引用者信息从https丢失到http?
  • 如果外部网站将我链接为http://example.com,这会在分析中直接显示吗?
  • 有没有办法将用户重定向到安全网站,同时保留引荐来源

apache https redirect google-analytics referrer

9
推荐指数
1
解决办法
1969
查看次数

Electron的app.getAppPath()指向哪里?

我使用browserify将我的应用程序的所有.js文件合并到一个dist/main.js.我package.json看起来像:

"main": "./dist/main.js",
"scripts": {
    "start": "electron ./dist/main.js",
},
"bin": {
  "electron": "./node_modules/.bin/electron"
}
Run Code Online (Sandbox Code Playgroud)

我可以正确运行我的应用程序npm run start.但是,如果在main.js我使用app.getAppPath()我得到:

/home/myuser/projects/electronProject/node_modules/electron/dist/resources/default_app.asar

我希望这是

/home/myuser/projects/electronProject/dist/main.js

我误解了这种方法的用法吗?如何获得Electron程序入口点的路径?有什么作用default_app.asar

谢谢

package.json electron

8
推荐指数
1
解决办法
5775
查看次数

在Tensorflow中使用可变长度文本

我正在构建一个Tensorflow模型来对文本短语进行推理.为简单起见,假设我需要一个具有固定数量的输出类但输入中的可变长度文本的分类器.换句话说,我的迷你批次将是一系列短语,但并非所有短语都具有相同的长度.

data = ['hello',
        'my name is Mark',
        'What is your name?']
Run Code Online (Sandbox Code Playgroud)

我的第一个预处理步骤是在字典中构建一个包含所有可能单词的字典,并将每个单词映射到整数单词-Id.输入变为:

data = [[1],
        [2, 3, 4, 5],
        [6, 4, 7, 3]
Run Code Online (Sandbox Code Playgroud)

处理这种输入的最佳方法是什么?tf.placeholder()可以在同一批数据中处理可变大小的输入吗?或者我应该填充所有字符串,使它们都具有相同的长度,等于最长字符串的长度,使用一些占位符来删除单词?如果某些字符串比大多数其他字符串长得多,这似乎是非常低效的内存.

- 编辑 -

这是一个具体的例子.

当我知道我的数据点的大小(并且所有数据点具有相同的长度,例如.3)时,我通常使用类似的东西:

input = tf.placeholder(tf.int32, shape=(None, 3)

with tf.Session() as sess:
  print(sess.run([...], feed_dict={input:[[1, 2, 3], [1, 2, 3]]}))
Run Code Online (Sandbox Code Playgroud)

其中占位符的第一个维度是小批量大小.

如果输入序列是不同长度的句子中的单词怎么办?

feed_dict={input:[[1, 2, 3], [1]]}
Run Code Online (Sandbox Code Playgroud)

python string text variable-length-array tensorflow

6
推荐指数
2
解决办法
3895
查看次数