在python和java中使用OpenCV的不同图像

在python和java中使用OpenCV的不同图像,java,python,opencv,Java,Python,Opencv,我使用OpenCV在python和java中修改图像。代码非常简单,但我没有得到相同的结果,为什么 Python: img = cv2.imread('sudoku.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) thresh = cv2.adaptiveThreshold(gray,255,1,1,5,2) printImg(thresh) BitmapFactory.Options op = new BitmapFactory.Opt

我使用OpenCV在python和java中修改图像。代码非常简单,但我没有得到相同的结果,为什么

Python

img =  cv2.imread('sudoku.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

thresh = cv2.adaptiveThreshold(gray,255,1,1,5,2)
printImg(thresh)
BitmapFactory.Options op = new BitmapFactory.Options();
        op.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bm = BitmapFactory.decodeResource(mContext.getResources(),
                R.drawable.sudoku1, op);
Utils.bitmapToMat(bm, img);
Imgproc.cvtColor(img, gray, Imgproc.COLOR_BGR2GRAY);
Imgproc.adaptiveThreshold(gray, thresh, 255, 1, 1, 5, 2);

Java

img =  cv2.imread('sudoku.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

thresh = cv2.adaptiveThreshold(gray,255,1,1,5,2)
printImg(thresh)
BitmapFactory.Options op = new BitmapFactory.Options();
        op.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bm = BitmapFactory.decodeResource(mContext.getResources(),
                R.drawable.sudoku1, op);
Utils.bitmapToMat(bm, img);
Imgproc.cvtColor(img, gray, Imgproc.COLOR_BGR2GRAY);
Imgproc.adaptiveThreshold(gray, thresh, 255, 1, 1, 5, 2);

因此,我测试了一些配置并尝试了一些解决方法。问题似乎与如何加载图像有关。正如@berak所说,将图像从
bitmap
转换为
mat
似乎会影响图像质量。我最终使用了
Highgui.imread
来获取图像

如果有人知道如何用一种更为android友好的方式来做这件事,我很想听听


干杯。

试试png或更好的bmp文件(有损jpg压缩)