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