OpenCV Java 问题记录 - Mat类型和BufferedImage类型的相互转化
来源:互联网 发布:平板一键刷机软件 编辑:程序博客网 时间:2024/05/22 03:51
将Mat类型转化成BufferedImage类型
/**
* 将Mat类型转化成BufferedImage类型
*
* @param amatrix Mat对象
* @param fileExtension 文件扩展名
* @return
*/
public static BufferedImage Mat2Img(Mat mat, String fileExtension) {
MatOfByte mob = new MatOfByte();
Highgui.imencode(fileExtension, mat, mob);
// convert the "matrix of bytes" into a byte array
byte[] byteArray = mob.toArray();
BufferedImage bufImage = null;
try {
InputStream in = new ByteArrayInputStream(byteArray);
bufImage = ImageIO.read(in);
} catch (Exception e) {
e.printStackTrace();
}
return bufImage;
}
将BufferedImage类型转换成Mat类型
/**
* 将BufferedImage类型转换成Mat类型
* @param bfImg
* @param imgType bufferedImage的类型 如 BufferedImage.TYPE_3BYTE_BGR
* @param matType 转换成mat的type 如 CvType.CV_8UC3
* @return
*/
public static Mat Img2Mat(BufferedImage bfImg, int imgType, int matType) {
BufferedImage original = bfImg;
int itype = imgType;
int mtype = matType;
if (original == null) {
throw new IllegalArgumentException("original == null");
}
if (original.getType() != itype) {
BufferedImage image = new BufferedImage(original.getWidth(), original.getHeight(), itype);
Graphics2D g = image.createGraphics();
try {
g.setComposite(AlphaComposite.Src);
g.drawImage(original, 0, 0, null);
} finally {
g.dispose();
}
}
byte[] pixels = ((DataBufferByte) original.getRaster().getDataBuffer()).getData();
Mat mat = Mat.eye(original.getHeight(), original.getWidth(), mtype);
mat.put(0, 0, pixels);
return mat;
}
- OpenCV Java 问题记录 - Mat类型和BufferedImage类型的相互转化
- opencv Mat&类型图像复制(P.S.CvArr*和Mat&转化的问题)
- OpenCV中IplImage* ,CvMat 与新版OpenCV中 Mat类型的相互转化
- java中String类型和char[]类型的相互转化
- Opencv读取mat和cvMat元素&&Mat与IplImage和CvMat类型之间的相互转换
- OpenCV Mat类型与IplImage类型的相互转换
- 【OpenCV学习笔记】【类型转换】一(IplImage和cv::Mat的类型相互转换)
- Java:String和date类型相互转化
- opencv中Mat、CvMat和IplImage的相互转化
- 【opencv】 图像的创建,读取,显示 IplImage,Mat类型转化
- OpenCV中向量是可以转化为MAT类型的~
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- OPENCV中MAT与IPLIMAGE和CVMAT类型之间的相互转换
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- 单链表基本操作(2)
- 等高UITableViewCell
- 堆排序之Java实现
- the line endings in the following file are not consistent.
- core dump 故障分析
- OpenCV Java 问题记录 - Mat类型和BufferedImage类型的相互转化
- 欢迎使用CSDN-markdown编辑器
- Ajax工作原理
- android动画库
- asp.net后台设置控件百分比的长度
- 两个链表的第一个公共结点
- Eclipse开发聊天插件-ImContent
- [二分 贪心 || 树的划分] NOI2003 Day 2 Berry Test6~Test9
- ElasticSearch 2 (6) - 插件安装Head、Kopf与Bigdesk