Image Processing in Java | Set 11 (Changing orientation of image)

In this article we will use opencv to change orientation of any input image, by using the CORE.flip() method of OpenCV library.

The main idea is that an input buffered image object will be converted to a mat object and then a new mat object will be created in which the original mat object values are put after orientation modification.

For achieving the above result, we will be requiring some of the OpenCV methods:

// Java program to illustrate orientation modification of image
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class OrientingImage
  public static void main( String[] args ) throws IOException
    // loads methods of the opencv library
    System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
    // input buffered image object
    File input = new File("E:\test.jpg");
    BufferedImage image = ImageIO.read(input);
    // converting buffered image object to mat object
    byte[] data = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
    Mat mat = new Mat(image.getHeight(),image.getWidth(),CvType.CV_8UC3);
    mat.put(0, 0, data);
    // creating a new mat object and putting the modified input mat object by using flip()
    Mat newMat = new Mat(image.getHeight(),image.getWidth(),CvType.CV_8UC3);
    Core.flip(mat, newMat, -1);  //flipping the image about both axis
    // converting the newly created mat object to buffered image object
    byte[] newData = new byte[newMat.rows()*newMat.cols()*(int)(newMat.elemSize())];
    newMat.get(0, 0, newData);
    BufferedImage image1 = new BufferedImage(newMat.cols(), newMat.rows(), 5);
    File ouptut = new File("E:\result.jpg");
    ImageIO.write(image1, "jpg", ouptut);




Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment



load comments

Subscribe to Our Newsletter