以python方式,加载和显示图像非常简单。
import functools
import itertools
import operator
import random
import string
import numpy as np
import pandas as pd
import perfplot # see https://github.com/nschloe/perfplot for this awesome library
def gen_data(n):
return pd.DataFrame(data={0: [
[random.choice(string.ascii_lowercase) for _ in range(random.randint(10, 20))]
for _ in range(n)
]})
def pd_sum(df):
return df[0].sum()
def np_sum(df):
return np.sum(df[0].values)
def np_concat(df):
return np.concatenate(df[0]).tolist()
def functools_reduce_add(df):
return functools.reduce(operator.add, df[0].values)
def functools_reduce_iadd(df):
return functools.reduce(operator.iadd, df[0], [])
def itertools_chain(df):
return list(itertools.chain(*(df[0])))
def itertools_chain_from_iterable(df):
return list(itertools.chain.from_iterable(df[0]))
perfplot.show(
setup=gen_data,
kernels=[
pd_sum,
np_sum,
np_concat,
functools_reduce_add,
functools_reduce_iadd,
itertools_chain,
itertools_chain_from_iterable
],
n_range=[10, 50, 100, 500, 1000, 1500, 2000, 2500, 3000, 4000, 5000],
equality_check=None
)
在Java中,它看起来像这样。
import cv2
image = cv2.imread("path/to/image")
cv2.imshow("test window", image)
cv2.waitKey(0) # any key press will close the window and stop the program
我正在使用opencv 4,但在Java的opencv中实现相同的功能却没有成功。
HighGui.waitKey(0)与python相比无法正常工作(任何按键都会关闭python中的窗口),我必须手动关闭“测试窗口”以使程序停止。
我在某处读到说Java中的opencv无法显示图像。但是HighGui不提供此功能吗?我从Java opencv api
读取了所有API关于api文档的详细信息无法帮助我理解该函数的确切功能,我只能从python中猜测它的功能。
答案 0 :(得分:0)
您是否尝试过明确调用:
HighGui.destroyAllWindows();
答案 1 :(得分:0)
在System.exit(0);
之后添加waitkey()
。