小编Meh*_*rki的帖子

简单的验证码解决

我正在尝试使用 OpenCV 和 pytesseract 解决一些简单的验证码。一些验证码样本是:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

我试图用一些过滤器去除嘈杂的点:

import cv2
import numpy as np
import pytesseract

img = cv2.imread(image_path)
_, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, np.ones((4, 4), np.uint8), iterations=1)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.GaussianBlur(img, (5, 5), 0)
cv2.imwrite('res.png', img)
print(pytesseract.image_to_string('res.png'))
Run Code Online (Sandbox Code Playgroud)

结果转换后的图像是:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

不幸的是,pytesseract 只能正确识别第一个验证码。还有其他更好的改造吗?

最终更新:

正如@Neil 所建议的那样,我尝试通过检测连接的像素来消除噪声。为了找到连接的像素,我找到了一个名为 的函数connectedComponentsWithStats,它检测连接的像素并为组(组件)分配一个标签。通过查找连接组件并删除具有少量像素的组件,我设法使用 pytesseract 获得了更好的整体检测精度。

这是新的结果图像:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

captcha python-tesseract opencv-python

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

使用WebPack CommonsChunkPlugin提取重复的JavaScript代码

我正在使用WebPack CommonsChunkPlugin来提取重复的代码并减少JavaScript代码的大小.我有两个html页面和两个条目.我还添加了ReactJs供应商条目.到目前为止,在webpack.config.js中我们有:

var path = require("path");
var webpack = require('webpack');
var BundleTracker = require('webpack-bundle-tracker');
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

module.exports = {
    context: __dirname,
    entry: {
        react: ["react", "react-dom"],
        home: './assets/js/home.jsx',
        about: './assets/js/about.jsx',
    },

    output: {
        path: path.resolve('./assets/bundles/'),
        filename: "[name].js",
    },

    plugins: [
        new BundleTracker({filename: './webpack-stats.json'}),

        new webpack.optimize.CommonsChunkPlugin({
            name: 'react',
            minChunks: Infinity
        }),

        new BundleAnalyzerPlugin(),
    ],

    module: {
        rules: [
            {
              test: /\.jsx?$/, 
              exclude: /node_modules/,
              loader: 'babel-loader',
              options: { 
                  plugins: [["lodash", { "id": ["semantic-ui-react"] }]], …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack commonschunkplugin webpack-2

7
推荐指数
1
解决办法
1257
查看次数

获取带有签名保护级别的Android权限

根据Android开发者文档,如果调用应用程序使用与签名相同的密钥进行签名,则可以获得signature应用程序中具有保护级别的权限。另外根据这个答案,具有保护级别的android权限不能被第三方应用程序获取,但在android开发人员文档中,有一个名为保护级别的权限。我见过很多代码在其代码中声明了此权限:ABAsignatureREQUEST_INSTALL_PACKAGESsignature

<uses-permission android:name="REQUEST_INSTALL_PACKAGES" /> 
Run Code Online (Sandbox Code Playgroud)

那怎么可能呢?少了什么东西?

android

3
推荐指数
1
解决办法
3130
查看次数