0
我目前正在研究一段使用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) (ColourQuery.java:67)「 」(ColourQuery.java:67)「
任何人都可以指出我在哪裏出錯了這段代碼?它的工作的時候它不灰度圖圖像...
什麼是'greyImage'的大小?你有什麼事嗎? – 2015-02-06 18:10:54
灰度圖像中有多少個通道?再看一遍.. – berak 2015-02-06 18:11:20
它與input()代碼工作的inputImage尺寸相同。 – Zetland 2015-02-06 18:11:36