opencv操作raw文件
【摘要】
python版:
import numpy as npimport cv2height=480width=640channels=3# img = cv2.imread('data/04/04(1).bmp')# # 这里需要我们在当前目录下放一张名为cat.jpg的文件# img.tofile('04(1).raw')# #利...
python版:
-
-
-
-
import numpy as np
-
import cv2
-
height=480
-
width=640
-
channels=3
-
# img = cv2.imread('data/04/04(1).bmp')
-
# # 这里需要我们在当前目录下放一张名为cat.jpg的文件
-
# img.tofile('04(1).raw')
-
# #利用numpy中array的函数tofile将数据写入文件
-
# #这时我们发现当前目录下新增了一个文件,名为cat.raw
-
# # 我们先确定原图片的数据格式和大小,通道数,否者无法进行下一步转换
-
# type = img.dtype#得到数据格式,如uint8和uint16等
-
# height,width, channels = img.shape# 得到图像大小和通道数
-
# 利用numpydefromfile函数读取raw文件,并指定数据格式
-
imgData = np.fromfile(r'C:\Users\Administrator\Documents\tmp\ceshia\ceshia\1648629378140_0.7237443_rgb.raw', dtype=np.uint8)
-
# 利用numpy中array的reshape函数将读取到的数据进行重新排列。
-
imgData = imgData.reshape(height,width,channels)
-
-
imgData=cv2.cvtColor(imgData,cv2.COLOR_BGR2RGB)
-
to_dir=r'C:\Users\Administrator\Documents\tmp\ceshia\ceshia'
-
-
cv2.imwrite(to_dir+"jia.jpg",imgData)
-
# 展示图像
-
cv2.imshow('img',imgData)
-
# 注意到这个函数只能显示uint8类型的数据,如果是uint16的数据请先转成uint8。否则图片显示会出现问题。**
-
cv2.waitKey()
-
c++版:
-
#include<iostream>
-
#include<opencv2/opencv.hpp>
-
#include<fstream>
-
using namespace std;
-
using namespace cv;
-
-
int main()
-
{
-
// open raw data
-
const std::string file_path = "D:/E_Dragon/OPENCV/testpictures/1.raw";
-
std::ifstream fin;
-
// 注意,这里要指定binary读取模式
-
fin.open(file_path, std::ios::binary);
-
if (!fin) {
-
std::cerr << "open failed: " << file_path << std::endl;
-
}
-
// seek函数会把标记移动到输入流的结尾
-
fin.seekg(0, fin.end);
-
// tell会告知整个输入流(从开头到标记)的字节数量
-
int length = fin.tellg();
-
// 再把标记移动到流的开始位置
-
fin.seekg(0, fin.beg);
-
std::cout << "file length: " << length << std::endl;
-
-
// load buffer
-
char* buffer = new char[length];
-
// read函数读取(拷贝)流中的length各字节到buffer
-
fin.read(buffer, length);
-
-
// construct opencv mat and show image
-
cv::Mat image(cv::Size(720, 540), CV_8UC1, buffer);
-
cv::imshow("test", image);
-
cv::waitKey();
-
}
原文链接:https://blog.csdn.net/weixin_51229250/article/details/119789057
文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/125160062
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)