我正在使用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邮件列表上发布了这个,但没有得到任何回复.
有谁知道问题是什么?我如何解决它?
我在使用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) 我正在编写一个访问linkedin的命令行应用程序.我正在使用python-linkedin API.
事情按照我的预期运作,但我对身份验证过程抱有很大的抱怨.目前,我需要:
我不喜欢手动执行步骤2到5,所以我想自动化它们.我在想的是:
提问时间:
编辑:
用于初始化令牌的代码(使用接受答案的方法):
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) 我遇到过这个函数:
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) 有没有办法让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) 我有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) 有没有办法以特定的比特率编码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) 我正在编写一个OCR应用程序来读取截图图像中的字符.目前,我只关注数字.我在博客文章中部分基于我的方法:http://blog.damiles.com/2008/11/basic-ocr-in-opencv/.
我可以使用一些聪明的阈值来成功提取每个角色.事情变得有点棘手的是匹配角色.即使使用固定的字体和大小,也有一些变量,如背景颜色和字距调整,导致相同的数字以略微不同的形状出现.例如,下面的图像分为3部分:
所有部件都已缩放(两条绿色水平线之间的距离代表一个像素).

您可以看到,尽管顶部和中间图像都清晰地表示为2,但它们之间的误差非常高.当匹配其他数字时,这会导致误报 - 例如,不难看出位置优良的7如何能够匹配上图中的目标数字,而不是中间图像.
目前,我正在处理这个问题,方法是为每个数字提供一堆训练图像,并将目标数字与这些图像逐一匹配.我尝试拍摄训练集的平均图像,但这并不能解决问题(其他数字的误报).
我有点不愿意使用移位模板进行匹配(它与我现在正在做的基本相同).比较简单的绝对差异是否有更好的方法来比较两个图像?我想到的可能是2D中的EMD(地球移动距离,http://en.wikipedia.org/wiki/Earth_mover's_distance):基本上,我需要一种对全局移动不敏感的比较方法.小的局部变化(白色像素旁边的像素变为白色,或者黑色像素旁边的像素变为黑色),但对全局变化敏感(白色像素附近的黑色像素变为黑色,反之亦然).
任何人都可以提出比绝对差异更有效的匹配方法吗?
我正在使用C风格的Python包装器(import cv)在OpenCV中完成所有这些.
我有一个字符串.
char foo[] = "abcdefgh";
Run Code Online (Sandbox Code Playgroud)
我想写一个for循环,并逐个打印出所有字符:
a
b
c
Run Code Online (Sandbox Code Playgroud)
等等
这是在C.
我正在从研究论文中实施一种方法.该方法的一部分需要一个主要的边缘检测器,作者描述如下:
请注意,这不是 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) python ×5
c++ ×3
opencv ×3
c ×1
compression ×1
fixed-point ×1
imagemagick ×1
ipython ×1
jpeg ×1
linkedin ×1
makefile ×1
matplotlib ×1
mechanize ×1
ocr ×1