В настоящее время я работаю над фрагментом кода, который превращает изображение в оттенки серого, используя OpenCV. Я сумел повернуть изображение черно-белое, так как я хотел, со следующим кодом:Почему мой метод get() не работает для этой функции?
public static void Greyscale() {
Mat inputImage = Highgui.imread("files/lena.png");
Mat greyImage = new Mat();
Imshow ims4 = new Imshow("Grey Image");
Imgproc.cvtColor(inputImage, greyImage, Imgproc.COLOR_BGR2GRAY);
ims4.showImage(greyImage);
Однако, теперь я хочу, чтобы запустить метод Get() на некоторых конкретных пикселей, чтобы убедиться, что все Значения BGR равны. Тем не менее, это не работает:
double[] bgr = greyImage.get(0, 0);
System.out.println("colour @ (0,0) = B: " + bgr[0] + " G: " + bgr[1] + " R: " + bgr[2]);
Выполнение кода выше, приводит к сообщениям об ошибках, как «исключение в потоке„главный“java.lang.ArrayIndexOutOfBoundsException: 1 в ColourQuery.Greyscale (ColourQuery.java:129) at ColourQuery.main (ColourQuery.java:67) "
Может ли кто-нибудь указать, где я ошибаюсь в этом коде? Он работал на изображении, когда он не был Greyscale ...
Каков размер 'greyImage'? У вас что-нибудь есть? –
Сколько каналов в полутонах? посмотрите на это снова .. – berak
Это тот же размер, что и inputImage, с которым работал код get(). – Zetland