0
我正在將我在JAVA中完成的代碼轉換爲使用某種機器學習算法的C++。 問題是,一些像素值是不同的,如果我加載在Java下的圖像方面加載它們在C + +(OpenCV)。 Java代碼是:使用IplImage(C++)和BufferedImage(JAVA)提取不同的像素值
BufferedImage img = ImageIO.read(new java.io.FileInputStream("lena.jpg"));
的C++代碼是:
IplImage *img = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_COLOR);
當我嘗試比較像素值I獲得像差異:
的IplImage
169 72 83
174 70 79
183 72 81
188 74 82
BufferedImage
170 63 73
175 65 74
183 72 79
188 74 82
正如您所看到的值是相似的,但不相同,這會導致機器學習算法中的一些問題。有人遇到同樣的問題嗎?
對不起。問題出在我的代碼中。 cvGet2d(img,x,y)返回不同的像素。解決方案是簡單地使用cvGet2d(img,y,x)(x代表wigth,y代表高度)。 – user1735256