我正在尝试使用python接口绘制一个多边形来打开opencv,cv2.我创建了一个空图像,只是一个640x480的numpy数组.我有一个我想要在图像上绘制的多边形(四点四边形)列表,但是,我似乎无法使合成器正确指示cv2四边形应该在哪里,并且我不断收到此错误:
OpenCV Error: Assertion failed (points.checkVector(2, CV_32S) >= 0) in fillConvexPoly, file .../OpenCV-2.4.0/modules/core/src/drawing.cpp, line 2017
Run Code Online (Sandbox Code Playgroud)
我的代码基本上包括以下内容:
binary_image = np.zeros(image.shape,dtype='int8')
for rect in expected:
print(np.array(rect['boundary']))
cv2.fillConvexPoly(binary_image, np.array(rect['boundary']), 255)
fig = pyplot.figure(figsize=(16, 14))
ax = fig.add_subplot(111)
ax.imshow(binary_image)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
我的预期rects列表中的'boundary'包含(x,y)点列表的值.代码打印:
[[ 91 233]
[419 227]
[410 324]
[ 94 349]]
Run Code Online (Sandbox Code Playgroud)
我认为这是多边形的点列表,但显然该列表无效points.checkvector
,无论是什么.谷歌搜索该错误没有任何用处.
我正在构建Amazon Redshift数据仓库,并根据VARCHAR列的已定义大小遇到意外的性能影响.细节如下.我的三个列显示在pg_table_def中:
schemaname | tablename | column | type | encoding | distkey | sortkey | notnull
------------+-----------+-----------------+-----------------------------+-----------+---------+---------+---------
public | logs | log_timestamp | timestamp without time zone | delta32k | f | 1 | t
public | logs | event | character varying(256) | lzo | f | 0 | f
public | logs | message | character varying(65535) | lzo | f | 0 | f
Run Code Online (Sandbox Code Playgroud)
我最近运行了Vacuum and Analyze,我在数据库中有大约1亿行,而且根据我包含的列,我看到了非常不同的性能.
查询1: 例如,以下查询大约需要3秒钟:
select log_timestamp from logs order by log_timestamp …
Run Code Online (Sandbox Code Playgroud) 我正在使用Amazon Redshift的JSON解析功能.它大部分时间都有效,但在这种情况下失败了.我收到以下错误:
error: JSON parsing error
code: 8001
context: invalid json object {"collection_id": 12, "activity_name": "Hour of Zen: The \"Dead Sea\" Float"}
Run Code Online (Sandbox Code Playgroud)
我的印象是反斜杠是双引号的正确转义(这是由Python的JSON包自动生成的).
我已经等了好几个小时,我的redshift集群完成了调整大小.现在已经停留了99%完成0次,0次剩余2小时.快速的网络和论坛搜索显示这是相当常见的.所有线程都没有关于解决方案的详细信息,除了AWS rep PM用户.
这是来自AWS论坛的交叉帖子.
因此,我使用python和opencv2生成二进制(很好,真正的灰度,8位,用作二进制)图像,向图像写入少量多边形,然后使用内核扩展图像.但是,无论我使用什么内核,我的源和目标映像总是一样.有什么想法吗?
from matplotlib import pyplot
import numpy as np
import cv2
binary_image = np.zeros(image.shape,dtype='int8')
for rect in list_of_rectangles:
cv2.fillConvexPoly(binary_image, np.array(rect), 255)
kernel = np.ones((11,11),'int')
dilated = cv2.dilate(binary_image,kernel)
if np.array_equal(dilated, binary_image):
print("EPIC FAIL!!")
else:
print("eureka!!")
Run Code Online (Sandbox Code Playgroud)
我得到的只是EPIC FAIL
!
谢谢!
我对pandas to_datetime函数和pandas中的日期时间有一些困难.具体来说,to_datetime在应用于pandas系列时无声地失败,没有做任何事情,我必须单独显式迭代每个值以使函数正常工作,即使(至少根据这个SO问题)两者都应该工作相同.
In [81]: np.__version__
Out[81]: '1.6.1'
In [82]: pd.__version__
Out[82]: '0.12.0'
In [83]: a[0:10]
Out[83]:
0 8/31/2013 14:57:00
1 8/31/2013 13:55:00
2 8/31/2013 15:45:00
3 9/1/2013 13:26:00
4 9/1/2013 13:56:00
5 9/2/2013 13:55:00
6 9/3/2013 13:33:00
7 9/3/2013 14:11:00
8 9/3/2013 14:35:00
9 9/4/2013 14:28:00
Name: date_time, dtype: object
In [84]: a[0]
Out[84]: '8/31/2013 14:57:00'
In [85]: a=pd.to_datetime(a)
In [86]: a[0]
Out[86]: '8/31/2013 14:57:00'
In [87]: a=[pd.to_datetime(date) for date in a]
In [88]: a[0]
Out[88]: Timestamp('2013-08-31 14:57:00', …
Run Code Online (Sandbox Code Playgroud) 我正在使用SQLAlchemy以编程方式查询具有复合外键的表.例如:
CREATE TABLE example (
id INT NOT NULL,
date TIMESTAMP NOT NULL,
data VARCHAR(128)
PRIMARY KEY (id, date)
)
Run Code Online (Sandbox Code Playgroud)
我想获取一个值列表并获取行,例如:
interesting_data = (
(1, '2016-5-1'),
(1, '2016-6-1'),
(2, '2016-6-1'),
(3, '2016-5-1'),
(3, '2016-6-1'),
)
select(
[example.c.id, example.c.date, example.c.data],
).where(example.primary_key.in_(interesting_data)
Run Code Online (Sandbox Code Playgroud)
如果每列都是独立的,我可以做到
interesting_ids = [1,2,3]
interesting_dates = ['2016-5-1', '2016-6-1']
select(
[example.c.id, example.c.date, example.c.data],
).where(
example.c.id.in_(interesting_ids)
).where(
example.c.date.in_(interesting_dates)
)
Run Code Online (Sandbox Code Playgroud)
但这显然无法仅带来唯一匹配(id,date)元组.我怀疑有一种方法可以指定要查询的复合主键,但搜索后找不到任何文档.
我正在尝试从存储在amazon redshift中的文本字段中的JSON blob中提取整数.我的查询看起来(大致)像:
select json_extract_path_text(json_column, 'integer_field')::int from data;
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个奇怪的错误:
ERROR: Invalid digit, Value '1', Pos 0, Type: Integer
Run Code Online (Sandbox Code Playgroud)
为什么'1'是无效的数字类型?这里发生了什么?
python ×4
opencv ×2
sql ×2
compound-key ×1
datetime ×1
drawing ×1
json ×1
pandas ×1
sqlalchemy ×1