在python方式中,加载和显示图像非常简单。
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在java中,它看起来像这样。
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgproc.Imgproc;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.highgui.HighGui;
public class HelloWorld {
static {
System.load("/Users/ongyichong/opencv/libopencv_java401.dylib");
}
public static void main(String[] args) {
System.out.println("hello world");
Mat testFile = Imgcodecs.imread("/Users/ongyichong/SikuliX/Scripts/NUSivle/0.png");
HighGui.imshow("test window", testFile);
HighGui.waitKey(0);
}
}我正在使用opencv 4,但在java的opencv中还没有成功地实现相同的功能。
与python相比,HighGui.waitKey(0)不能像预期的那样工作(任何按键都会关闭python中的窗口),我必须手动关闭“测试窗口”才能使程序停止。
我在某处读到说java中的opencv不能显示图像。然而,HighGui不提供此功能吗?我从java opencv api读取了所有的API。
api文档没有详细地帮助我理解这个函数到底做了什么,我只能猜测它在python中做了什么。
发布于 2019-03-20 23:08:41
您是否尝试过显式调用:
HighGui.destroyAllWindows();发布于 2019-11-06 18:40:56
在waitkey()之后添加System.exit(0);。
https://stackoverflow.com/questions/54103815
复制相似问题