如何在Android OpenCV 3中将风景图像旋转为纵向

时间:2016-10-18 02:59:33

标签: java android opencv3.0

此代码将图像从横向旋转为纵向,但我无法在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)

2 个答案:

答案 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);