2016-10-18 4 views
0

Этот код поворачивает изображение из Пейзаж в портрет, но я не могу сделать это в Android. Что такое эквивалентный код?Как поворачивать ландшафтное изображение в портрет в Android OpenCV 3

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

Я предполагаю, что у вас есть изображение как OpenCV Мат в Android (вы можете загрузить изображение с помощью метода 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(), чтобы сохранить изображение. Убедитесь, что вы добавляете права доступа к вашему манифесту:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
+0

Hi. Я применяю код ниже, тогда изображение переворачивается (вращается), но все равно в ландшафте. –

+0

Core.transpose (mRgba, mRgbaT); Imgproc.resize (mRgbaT, mRgbaF, mRgba.size(), 0, 0, 0); Core.flip (mRgbaF, mRgba, 1); ; –

+0

Оригинал -> https://drive.google.com/open?id=0ByAKso4Vz99QVHdHT21aTUROa0k Flipped -> https://drive.google.com/open?id=0ByAKso4Vz99QNUoxN2pMbzhJdzQ –

0

[Решенным] ...

Получить пейзаж, как (W) 800 х (H) 600, и outpout в (H) 800 х (Вт) 600. :)

Core.transpose(mRgba, mRgbaT); Imgproc.resize(mRgbaT, mRgbaF, mRgbaT.size(), 0, 0, 0); Core.flip(mRgbaF, mRgbaF, 1);

 Смежные вопросы

  • Нет связанных вопросов^_^