2012-10-10 60 views
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 

正如您所看到的值是相似的,但不相同,這會導致機器學習算法中的一些問題。有人遇到同樣的問題嗎?

回答

0

Jpeg解碼器庫的實現可能不同。不是一個大問題。

+0

對不起。問題出在我的代碼中。 cvGet2d(img,x,y)返回不同的像素。解決方案是簡單地使用cvGet2d(img,y,x)(x代表wigth,y代表高度)。 – user1735256