此代码将图像从横向旋转为纵向,但我无法在Android中执行此操作。什么是等效代码?
import cv2
import numpy
img = cv2.imread('original.png')
h, w = img.shape[:2]
img2 = numpy.zeros((w, h, 3), numpy.uint8)
cv2.transpose(img, img2)
cv2.flip(img2, 1, img2)
cv2.imwrite('rotate.png', img2)
答案 0 :(得分:0)
我假设你的图像是Android中的OpenCV Mat(你可以使用Imgcodecs.imread()
方法加载图像。)
然后你就可以这样做:
Mat src = Imgcodecs.imread("path/to/file"); // initialize this with your image from file
Core.flip(src.t(), src, 1); // this will rotate the image 90° clockwise
Core.flip(src.t(), src, 0); // this will rotate the image 90° counter-clockwise
之后,使用Imgcodecs.imwrite()
保存图像。确保将权限添加到Manifest:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 1 :(得分:0)
[已解决] ......
获得景观,如(W)800 x(H)600,并且输出(H)800 x(W)600。 :)
Core.transpose(mRgba, mRgbaT);
Imgproc.resize(mRgbaT, mRgbaF, mRgbaT.size(), 0, 0, 0);
Core.flip(mRgbaF, mRgbaF, 1);