小编mpe*_*kov的帖子

Sphinx coverage会生成空的python.txt文件

我正在使用Sphinx记录我的项目.我在配置文件中启用了sphinx.ext.coverage扩展.我正在运行以下命令来生成覆盖率报告(在此答案的指导下:

bash-3.2$ sphinx-build -v -b coverage . _build/coverage/
Making output directory...
Running Sphinx v1.2.3
loading pickled environment... not yet created
building [coverage]: coverage overview
updating environment: 10 added, 0 changed, 0 removed
...
reading sources... [100%] modules
looking for now-outdated files... none found
pickling environment... done
checking consistency... /some/path/modules.rst:: WARNING: document isn't included in any toctree
done
build succeeded, 17 warnings.
Run Code Online (Sandbox Code Playgroud)

如果我查看_build/coverage/python.txt,我看到的只有:

Undocumented Python objects
===========================
Run Code Online (Sandbox Code Playgroud)

这是不对的,因为我的项目肯定有部分没有记录.

有人在sphinx邮件列表上发布了这个,但没有得到任何回复.

有谁知道问题是什么?我如何解决它?

python python-sphinx

11
推荐指数
1
解决办法
1614
查看次数

在x轴上具有日期的子图

我在使用x轴上有多个日期的多个子图时遇到了麻烦.

我在这里使用matplotlib示例.我已将其修改为包含另一个子图(绘制的数据相同).这是我得到的输出:

在此输入图像描述

刻度仅出现在第二个子图上.为什么?如何让它们出现在两个子图上?

这是我修改后的来源.我添加了代码,if在源代码中途的块中包含一个新的子图.

#!/usr/bin/env python
"""
Show how to make date plots in matplotlib using date tick locators and
formatters.  See major_minor_demo1.py for more information on
controlling major and minor ticks

All matplotlib date plotting is done by converting date instances into
days since the 0001-01-01 UTC.  The conversion, tick locating and
formatting is done behind the scenes so this is most transparent to
you.  The dates module provides several converter functions date2num
and num2date …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

10
推荐指数
1
解决办法
1万
查看次数

使用Python无需浏览器访问LinkedIn

我正在编写一个访问linkedin的命令行应用程序.我正在使用python-linkedin API.

事情按照我的预期运作,但我对身份验证过程抱有很大的抱怨.目前,我需要:

  1. 启动我的应用程序并等待它打印身份验证URL
  2. 使用我的浏览器转到该URL
  3. 为我的应用程序祝福并等待它将我重定向到URL
  4. 从URL中提取访问令牌
  5. 将访问令牌输入到我的应用程序中
  6. 做我需要做的与linkedin

我不喜欢手动执行步骤2到5,所以我想自动化它们.我在想的是:

  • 使用像机械化这样的无头客户端来访问上面步骤1中的URL
  • 刮掉屏幕并自动给我祝福(可能需要输入用户名和密码 - 我知道这些,所以没关系)
  • 等待重定向并获取重定向URL
  • 从URL中提取令牌
  • 利润!

提问时间:

  • 环顾四周,这个人就在SO这里尝试做类似的事情,但被告知这是不可能的.为什么?
  • 然后,这个人在Jython和HtmlUnit中完成它.应该可以用直接的Python和机械化,对吗?
  • 最后,有没有人看到过直接Python和机械化(或任何其他无头浏览器替代品)的解决方案?我不想重新发明轮子,但如有必要,我会对其进行编码.

编辑:

用于初始化令牌的代码(使用接受答案的方法):

api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)
result = api.request_token()
if not result:
    print 'Initialization error:', api.get_error()
    return

print 'Go to URL:', api.get_authorize_url()
print 'Enter verifier: ',
verifier = sys.stdin.readline().strip()
if not result:
    print 'Initialization error:', api.get_error()
    return

result = api.access_token(verifier=verifier)
if not result:
    print 'Initialization error:', api.get_error()
    return …
Run Code Online (Sandbox Code Playgroud)

python mechanize linkedin

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

为什么以这种方式执行乘法?

我遇到过这个函数:

static inline INT32 MPY48SR(INT16 o16, INT32 o32)
{
    UINT32   Temp0;
    INT32    Temp1;
    // A1. get the lower 16 bits of the 32-bit param
    // A2. multiply them with the 16-bit param
    // A3. add 16384 (TODO: why?)
    // A4. bitshift to the right by 15 (TODO: why 15?)
    Temp0 = (((UINT16)o32 * o16) + 0x4000) >> 15;
    // B1. Get the higher 16 bits of the 32-bit param
    // B2. Multiply them with the 16-bit param
    Temp1 = (INT16)(o32 …
Run Code Online (Sandbox Code Playgroud)

c++ fixed-point multiplication

9
推荐指数
2
解决办法
757
查看次数

ipython:自动回显赋值语句的结果?

有没有办法让iPython自动回显赋值语句的结果?

例如,在MATLAB中,结束没有分号的赋值语句会打印赋值的结果,并且在语句末尾加一个分号会抑制任何输出.

>> b=1+2

b =

     3

>> b=1+2;
>> 
Run Code Online (Sandbox Code Playgroud)

我希望能够在iPython中做类似的事情.但是,如果我想查看赋值结果,目前我必须使用两个单独的语句:

In [32]: b=1+2

In [33]: b
Out[33]: 3
Run Code Online (Sandbox Code Playgroud)

python ipython

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

帮助简化多个可执行文件的Makefile

我有hello.cpp多个可执行文件使用的公共代码(例如).我正在使用单个Makefile来构建它:

EXE=app1.out app2.out
SRC=hello.cpp
OBJ=$(SRC:.cpp=.o)
SRC_MAIN=app1.cpp app2.cpp
OBJ_MAIN=$(SRC_MAIN:.cpp=.o)
all: $(EXE)    
app1.out: app1.o $(OBJ)
    g++ $< $(OBJ) -o $@    
app2.out: app2.o $(OBJ)
    g++ $< $(OBJ) -o $@    
.cpp.o:
    g++ -c $< -o $@    
clean:
    rm -f $(EXE) $(OBJ) $(OBJ_MAIN)
Run Code Online (Sandbox Code Playgroud)

对于每个可执行文件都有一个单独的目标我感到不高兴 - 目标基本相同.对于所有可执行文件,是否有任何方法可以使用一个目标?我希望这样的东西能起作用:

EXE=app1.out app2.out
SRC=hello.cpp
OBJ=$(SRC:.cpp=.o)
SRC_MAIN=app1.cpp app2.cpp
OBJ_MAIN=$(SRC_MAIN:.cpp=.o)
all: $(EXE)
.o.out: $(OBJ)
    g++ $< $(OBJ) -o $@
.cpp.o:
    g++ -c $< -o $@
clean:
    rm -f $(EXE) $(OBJ) $(OBJ_MAIN)
Run Code Online (Sandbox Code Playgroud)

但我收到一个链接错误:

misha@misha-desktop:~/cpp/stack$ make -f Makefile2
g++ -c app1.cpp -o …
Run Code Online (Sandbox Code Playgroud)

c++ makefile

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

如何为JPEG压缩指定比特率?

有没有办法以特定的比特率编码JPEG?

目前,我正在使用imagemagick convert:

convert Lenna-gray-100.jpeg -quality 1.1111 test.jpeg
Run Code Online (Sandbox Code Playgroud)

比特率随着质量的提高而增加,但它是非线性的.我想明确地控制比特率.它不一定非常精确,但我希望它合理地接近(在指定设置的0.1 bpp内).

那里有编码器允许以特定的比特率编码图像吗?它不一定是imagemagick,我会采取任何工作(最好在Linux上).

这样做的一个愚蠢的方法是使用-quality参数的小数值,直到接近目标比特率,但我希望有一个更优雅的解决方案.

编辑:

所以我感到无聊,决定以快速(但愚蠢)的方式做事.

首先,这是imagemagick -quality与比特率的图表:

替代文字

顺便说一句,这是我用的图像:

替代文字

因此,对于较低质量的值,比特率的变化非常好,但在大约80之后变得粗糙.

下面是一些以某个目标比特率对图像进行编码的示例代码.我使用OpenCV因为它允许内存中的JPEG编码(不需要I/O).虽然我原本打算用Python来嘲笑它,但不幸的是,Python OpenCV包装器不会暴露内存编码功能.所以我用C++编写了它.

最后,我考虑在质量上使用线性插值来接近目标比特率,但由于cv::imencode只接受整数参数,因此无法设置非整数JPEG质量.OpenCV和imagemagick之间的质量比例似乎也有所不同,因此从OpenCV中获取插值质量参数并在imagemagick中使用convert效果不佳.

这意味着输出比特率不等于目标比特率,尤其是在较高比特率(> 1)时.但它很接近.

谁能提出更好的建议?

码:

#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <assert.h>
#include <vector>

using cv::Mat;
using std::vector;

#define IMENCODE_FMT   ".jpeg"
#define QUALITY_UBOUND 101
#define BITS_PER_BYTE  8

int
main(int argc, char **argv)
{
    if (argc != 4)
    {
        fprintf(stderr, "usage: %s in.png out.jpeg bpp\n", argv[0]);
        return 1;
    }

    char *fname_in = …
Run Code Online (Sandbox Code Playgroud)

compression jpeg opencv imagemagick image-processing

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

屏幕截图中的低分辨率文本的OCR

我正在编写一个OCR应用程序来读取截图图像中的字符.目前,我只关注数字.我在博客文章中部分基于我的方法:http://blog.damiles.com/2008/11/basic-ocr-in-opencv/.

我可以使用一些聪明的阈值来成功提取每个角色.事情变得有点棘手的是匹配角色.即使使用固定的字体和大小,也有一些变量,如背景颜色和字距调整,导致相同的数字以略微不同的形状出现.例如,下面的图像分为3部分:

  1. 顶部:我从屏幕截图中成功提取的目标数字
  2. 中:模板:我训练集中的一个数字
  3. 底部:顶部和中间图像之间的误差(绝对差异)

所有部件都已缩放(两条绿色水平线之间的距离代表一个像素).

topbottommiddle

您可以看到,尽管顶部和中间图像都清晰地表示为2,但它们之间的误差非常高.当匹配其他数字时,这会导致误报 - 例如,不难看出位置优良的7如何能够匹配上图中的目标数字,而不是中间图像.

目前,我正在处理这个问题,方法是为每个数字提供一堆训练图像,并将目标数字与这些图像逐一匹配.我尝试拍摄训练集的平均图像,但这并不能解决问题(其他数字的误报).

我有点不愿意使用移位模板进行匹配(它与我现在正在做的基本相同).比较简单的绝对差异是否有更好的方法来比较两个图像?我想到的可能是2D中的EMD(地球移动距离,http://en.wikipedia.org/wiki/Earth_mover's_distance):基本上,我需要一种对全局移动不敏感的比较方法.小的局部变化(白色像素旁边的像素变为白色,或者黑色像素旁边的像素变为黑色),但对全局变化敏感(白色像素附近的黑色像素变为黑色,反之亦然).

任何人都可以提出比绝对差异更有效的匹配方法吗?

我正在使用C风格的Python包装器(import cv)在OpenCV中完成所有这些.

python ocr opencv

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

获取C字符串中索引引用的字符

我有一个字符串.

char foo[] = "abcdefgh";
Run Code Online (Sandbox Code Playgroud)

我想写一个for循环,并逐个打印出所有字符:

a
b
c
Run Code Online (Sandbox Code Playgroud)

等等

这是在C.

c

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

需要帮助实现特殊的边缘检测器

我正在从研究论文中实施一种方法.该方法的一部分需要一个主要的边缘检测器,作者描述如下:

  1. 获得DC图像(宽度和高度均有效地缩减8)
  2. 计算DC图像的Sobel梯度
  3. 阈值索贝尔梯度图像(使用T = 120)
  4. 用于清理边缘图像的形态学操作

请注意,这不是 Canny边缘检测 - 它们不会对非最大限制抑制等问题感到困扰.我当然可以使用Canny边缘检测来执行此操作,但我希望完全按照本文中的表达方式实现.

最后一步是我有点卡住了.

以下是作者对此的评价:

在从边缘检测过程获得二值边缘图之后,采用二元形态学运算来去除孤立的边缘像素,这可能在边缘检测期间引起误报警.

这就是事情在最后的结果应该是什么样的(边块被填充为黑色):

替代文字

如果我跳过最后一步,这就是我所拥有的:

替代文字

它似乎在正确的轨道上.所以,如果我对第4步进行侵蚀,会发生什么:

替代文字

我已经尝试过侵蚀和扩张的组合来获得与它们相同的结果,但是没有得到任何接近.任何人都可以建议结合使用形态学运算符来获得理想的结果吗?

这是二值化输出,以防有人想玩它:

替代文字

如果你真的很热衷,这里是源代码(C++):

#include <cv.h>
#include <highgui.h>
#include <stdlib.h>
#include <assert.h>

using cv::Mat;
using cv::Size;

#include <stdio.h>

#define DCTSIZE 8
#define EDGE_PX 255

/*
 * Display a matrix as an image on the screen.
 */
void
show_mat(char *heading, Mat const &m)
{
    Mat clone = m.clone();

    Mat scaled(clone.size(), CV_8UC1);
    convertScaleAbs(clone, scaled);

    IplImage ipl = scaled;

    cvNamedWindow(heading, CV_WINDOW_AUTOSIZE); 
    cvShowImage(heading, &ipl);
    cvWaitKey(0);
}

/* …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing

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