即使只是做最基本的视频流也会导致内存泄漏.
cvNamedWindow("1",0);
CvCapture *fc = cvCaptureFromCAM(0);
IplImage *frame = NULL;
CvSize frameSize;
frameSize.height = cvGetCaptureProperty(fc, CV_CAP_PROP_FRAME_HEIGHT);
frameSize.width = cvGetCaptureProperty(fc, CV_CAP_PROP_FRAME_WIDTH);
while (1) {
IplImage *wrkImage = NULL;
frame = cvQueryFrame(fc);
if (!frame)
break;
wrkImage = cvCreateImage(frameSize, IPL_DEPTH_8U, 3);
cvCopy(frame, wrkImage, NULL);
cvShowImage("1", wrkImage);
char c = cvWaitKey(33);
if (c == 27) {
break;
}
cvReleaseImage(&wrkImage);
}
Run Code Online (Sandbox Code Playgroud)
显然根据"学习OpenCV"这本书,我不应该释放"框架",因为它是由openCV管理的,我可以"如果我这样做就会遇到问题".如果我在调用cvQueryFrame后释放帧指针,确实会导致问题.本书还建议将cvQueryFrame指向的图像复制到其他地方,因为cvQueryFrame可能会重复地回收相同的内存块.因此我在每个帧周期结束时释放wrkImage.程序在几分钟后崩溃,并像疯了一样泄漏记忆!让我相信一些重要的事情就像整个画面一样被泄露.我想知道是否有人在Mac上使用OpenCV 2.1获取视频内容,并且发现这也是一个问题.或者,如果有人能在我的代码中看到一个漏洞,我就错过了.
任何来自OpenCV大师的建议都会非常感激!
编辑:仔细踩过程序并检查内存后,我怀疑问题出在cvShowImage()上.cvShowImage似乎分配了一个永远不会被回收的帧的内存.然后发现这个链接 OpenCV cvShowImage Memory Leaks OSX似乎同意我的怀疑.可能在这里接近解决方案......很高兴看到我不疯狂!
更新:Macports OpenCV现在已经很好了(现在已经有几个月了.我想我应该在这里发帖,这样人们就不会因为他们的OpenCV构建/安装使用macport而气馁.Macports是安装OpenCV的好方法.
我有一个JSON对象,说:
{
"foo": {
"bar": 1
},
"baz": 2
}
Run Code Online (Sandbox Code Playgroud)
我想将它绑定到Java对象,如:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
private int bar;
@JsonProperty("baz")
private int baz;
}
Run Code Online (Sandbox Code Playgroud)
如何将foo.barJSON 的值设置bar为FooJava对象中的字段?
我试过用这个字段进行注释@JsonProperty("foo.bar"),但它并不像那样工作.
我创建了一个ArrayList<HashMap<String, String>>集合来保存我的数据ListView.我正在使用SimpleAdapter.
当列表项的ID为%10 == 0时,是否可以更改列表项的背景?
这是代码(生成布局的方法):
private void fillData() {
Cursor c = this.mDbManager.getNgOrderDetailByOrderNumber(this.mNumber);
ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>();
if (!c.isAfterLast()) {
do {
// ... filling HashMap and putting it to ArrayList
} while (c.moveToNext());
}
SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.list_item,
new String[] { "product", "ordered", "price", "discount" },
new int[] { R.id.ProductTextView, R.id.OrderedTextView,
R.id.PriceTextView, R.id.DiscountTextView });
ListView l = (ListView) findViewById(android.R.id.list);
l.setAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud) 我已经看到了一些问题,关于合并的CSV文件到一个数据帧.如果数据框已在工作区中,该怎么办?我有五个广角动物园,我作为数据框投射,然后融化.这是一个头:
> head(df.mon.ssf.ret)
date variable value
1 2009.000 AA1C NA
2 2009.083 AA1C NA
3 2009.167 AA1C NA
4 2009.250 AA1C NA
5 2009.333 AA1C NA
6 2009.417 AA1C NA
Run Code Online (Sandbox Code Playgroud)
我可以在"date"和"variable"上将这些与一系列嵌套合并合并,但这看起来很笨拙.是否有更程序化的合并方式?
如果我确信所有动物园中的柱子的顺序相同,我是否可以确信熔化物保持订购和使用cbind?谢谢!
更新:
关于融化的使用理念,我有些遗漏.这是当我合并为一个动物园并使用三个动物园融化成一个非常宽的数据框架时会发生的事情:
> temp <- merge(z.ssf.oi, z.ssf.oig, z.ssf.ret)
> class(temp)
[1] "zoo"
> temp2 <- cbind(index(temp), as.data.frame(temp))
> class(temp2)
[1] "data.frame"
> names(temp2)[1] <- "date"
> dim(temp2)
[1] 12 1204
> temp3 <- melt(temp2, id="date")
Error in data.frame(ids, variable, value) :
arguments imply differing …Run Code Online (Sandbox Code Playgroud) 我有一个简单的模块:
-module(dist).
-compile([add/3]).
add(From,X,Y) ->
From ! X+Y.
Run Code Online (Sandbox Code Playgroud)
我正在启动两个节点.
一个用
erl -sname foo
Run Code Online (Sandbox Code Playgroud)
和另一个
erl -sname bar
Run Code Online (Sandbox Code Playgroud)
在酒吧节点我正在做:
> c(dist).
{ok,dist}
> self().
<0.37.0>
> spawn('foo@unknown-00-23-6c-83-af-bd', dist, add, [self(), 3, 5]).
Run Code Online (Sandbox Code Playgroud)
但我得到的反应是:
Error in process <0.48.0> on node 'foo@unknown-00-23-6c-83-af-bd' with exit value: {undef,[{dist,add,[<8965.37.0>,3,5]}]}
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思?我想知道这是否意味着我的foo节点没有定义这个模块?我不认为它需要它,但问题并没有通过编译foo节点中的dist来解决,所以我猜这不是问题.
其中lb是一个列表框,txtfield是一个文本框,此代码获取选项的所有值,将它们放在一个数组中并使其成为逗号分隔的列表:
var arr = [];
for (var i = 0; i < lb.length; i++) {
arr[i] = lb.options[i].value;
}
txtfield.value = arr.join(',');
Run Code Online (Sandbox Code Playgroud)
lb.options.toString()显然不起作用,因为它是一个选项数组(值和文本).我没有找到比这更多的succint.
jQuery的方法是什么?我试着乱搞$(lb).each(),但似乎无法让它以同样的方式工作.
我想实现一个equals的覆盖,它根据它们比较两个Java Queue对象,每个对象的内容都相等(按值).
我可能会破解一些代码,但肯定有人已经优雅地解决了这个问题.谷歌搜索没有出现任何结果,所以我接下来来到这里.
我很感激任何建议.我也需要对ArrayList和HashMap集合做同样的事情.
BTW,对于equals(),我使用它作为我的向导:http://www.javapractices.com/topic/TopicAction.do?Id = 17
它提供了一些提示,但显然我需要更多的帮助来收集.集合中包含的类型根据该链接的建议覆盖equals().
我想知道xml:lang属性的作用以及HTML5中的值是什么。xml:lang属性有什么限制吗?
是否有任何SQLite命令或第三方工具允许数据库转储在INSERT INTO语句中包含列名?
代替
INSERT INTO "MyTable" VALUES ('A', 'B');
Run Code Online (Sandbox Code Playgroud)
我想看
INSERT INTO "MyTable" (Column1, Column2) VALUES ('A', 'B');
Run Code Online (Sandbox Code Playgroud)
.dumpSQLite中的命令仅提供第一个版本.
我想知道是否可以向 SpamAssassin 发送简单的文本。我想将评论放入文本文件中并调用“spamc < file.txt”(我不知道是否可以将文本直接发送到 spamc)。问题是,如果我不指定标题或标题,SpamAssassin 会将所有内容报告为垃圾邮件...我可以绕过所有标题验证 - 或者有任何模式可以扫描简单的纯文本吗?(我没有经验,所以我更喜欢问这个。提前谢谢)
java ×2
android ×1
c ×1
collections ×1
data-binding ×1
distributed ×1
dom ×1
email ×1
equals ×1
erlang ×1
html5 ×1
jackson ×1
javascript ×1
jquery ×1
json ×1
listviewitem ×1
melt ×1
memory-leaks ×1
merge ×1
opencv ×1
r ×1
reshape ×1
spamassassin ×1
sql ×1
sqlite ×1