package com.test;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import javax.imageio.ImageIO;
import org.bytedeco.javacpp.BytePointer;
import org.bytedeco.javacpp.opencv_core.IplImage;
import org.bytedeco.javacpp.opencv_highgui;
/**功能说明:将javacv的IplImage图像转为java 2d自身的BufferedImage
* 所使用的javacv版本0.8
* @author:linghushaoxia
* @time:2016年8月3日上午11:59:35
* @version:1.0
* 为中国羸弱的技术,
* 撑起一片自立自强的天空!
*
*/
public class IplToBufImage {
/**
*
* 功能说明:将javacv的IplImage图像转为java 2d自身的BufferedImage
* @param iplImage
* javacv图像
* @return BufferedImage
* java 2d图像
* @time:2016年8月3日下午12:03:05
* @author:linghushaoxia
* @exception:
*
*/
public static BufferedImage iplToBufferedImage(IplImage iplImage) {
if (iplImage.height() > 0 && iplImage.width() > 0) {
BufferedImage image = new BufferedImage(iplImage.width(), iplImage.height(), BufferedImage.TYPE_3BYTE_BGR);
iplImage.copyTo(image);;
return image;
}
return null;
}
/**
*
* 功能说明:将javacv的IplImage图像转为java 2d自身的BufferedImage
* @param iplImage
* javacv图像
* @return BufferedImage
* java 2d图像
* @time:2016年8月3日下午12:24:50
* @author:linghushaoxia
* @exception:
*
*/
public static BufferedImage iplToBufImgData(IplImage mat) {
if (mat.height() > 0 && mat.width() > 0) {
BufferedImage image = new BufferedImage(mat.width(), mat.height(),
BufferedImage.TYPE_3BYTE_BGR);
WritableRaster raster = image.getRaster();
DataBufferByte dataBuffer = (DataBufferByte) raster.getDataBuffer();
byte[] data = dataBuffer.getData();
BytePointer bytePointer =new BytePointer(data);
mat.imageData(bytePointer);
return image;
}
return null;
}
public static void main(String[] args) {
try {
// 读取
IplImage iplImage = opencv_highgui.cvLoadImage("images/yingying.png");
// 转换
BufferedImage bufferedImage = iplToBufImgData(iplImage);
// 保存
ImageIO.write(bufferedImage, "jpg", new File("images/yingying.jpg"));
System.out.println("保存成功。");
} catch (Exception e) {
System.out.println("转换数据类型出现异常");
e.printStackTrace();
}
}
}
/**
* 现实就是实现理想的过程
*/
IplImage转为BufferedImage
最新推荐文章于 2024-05-30 11:37:02 发布