В 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.
HighGui.waitKey (0) не работает должным образом по сравнению с python (любое нажатие клавиши закрывает окно в python), и мне приходится вручную закрывать «тестовое окно», чтобы вызвать остановку программы.
Я где-то читал, что opencv в java не может отображать изображения. Однако не обеспечивает ли HighGui эту функциональность? Я прочитал все API из Java OpenCV API
Документы API не так детализированы, чтобы помочь мне понять, что именно делает функция, и я могу только догадываться, что она делает с Python.