用opencv 与qt打开raw图,以及四通道输出
来源:互联网 发布:整型数据 true 编辑:程序博客网 时间:2024/04/27 14:40
qt做的程序界面
opencv打开raw图
以下为部分须知
1:raw图路径获取 ,此部分为qt内容,此为相对可更改的路径,如果需要绝对路径可直接定义filepath 路径名称
QString filepath=QFileDialog::getOpenFileName();
FILE *fp = NULL;
QByteArray byte=filepath.toLatin1();
const char* filename=byte.data();
2:raw 10 ,16为两个byte 一个通道数值,raw 8 为1个byte 一个通道数值
raw 10,raw16 内存定义
unsigned short *pRawData = (unsigned short *)calloc(width*height, sizeof(unsigned short));
四通道内存定义
unsigned short *R = (unsigned short *)calloc(width*height/2, sizeof(unsigned short));
raw 8 内存定义
unsigned char *pRawData = (unsigned char *)calloc(width*height, 1);
四通道内存定义
unsigned char *R = (unsigned char*)calloc(width*height, 1);
3:读取raw图
fread(pRawData,sizeof(unsigned short)*width*height,1, fp);
4:raw图为bayer 单通道,需将其转换为四通道排布
raw图的四个通道有不同的排序方式,要想正常显示图片,需要确认sensor的rgb的排布
IplImage *pBayerData = cvCreateImage(cvSize(width,height),16 , 1); //定义一个单通道图片
IplImage *pRgbDataInt16 = cvCreateImage(cvSize(width,height),16,3); //定义一个三通道图片
memcpy(pBayerData->imageData, (char *)pRawData, width*height*sizeof(unsigned short)); //将raw图的信息附到但通道中
cvCvtColor(pBayerData, pRgbDataInt16, CV_BayerRG2RGB); //单通道转换为三通道 ,需要确认sensor的rgb的排布
4:raw图显示时最后需要转换为0-255rgb范围内显示,所以raw10,raw16转换时需要除以相应倍数,否则画面不能正常显示
IplImage *pRgbDataInt8 = cvCreateImage(cvSize(width,height),8,3);
cvConvertScale(pRgbDataInt16, pRgbDataInt8, 0.25, 0); //0.25为raw10与raw8的数据转换
5:图片显示部分就不讲了
6:raw图数据四个通道输出
for (y=0;y<height;y+=2)
{
for (x=0;x<width;x+=2,e++)
{
Pos1=x+width*y;
Pos2=x+width*(y+1);
//图像rgbg排序
R[e]=pRawData[Pos1];
Gr[e]=pRawData[Pos1+1];
Gb[e]=pRawData[Pos2];
B[e]=pRawData[Pos2+1];
}
}
- 用opencv 与qt打开raw图,以及四通道输出
- 使用OpenCV打开RAW文件
- 输入图像四通道 输出图像四通道
- opencv学习之四:rgb通道的分离以及直方图的显示计算
- qt+opencv设置图片通道颜色
- 【OpenCV】四通道图像复制到三通道图像上
- opencv qt 四
- Qt调用OpenCV打开图片
- OpenCV 分离颜色通道与多通道图像混合
- Android res/raw文件以及raw与res/assets异同
- Android res/raw文件以及raw与res/assets异同
- Android res/raw文件以及raw与res/assets异同
- Android res/raw文件以及raw与res/assets异同
- Android res/raw文件以及raw与res/assets异同
- Android res/raw文件以及raw与res/assets异同
- opencv中图像深度与通道介绍
- Opencv基础:图像(IplImage)深度与通道
- opencv对比度亮度调整与通道分离
- SI3402新一代PD受电端单芯片整体解决方案
- 服务器推送技术
- jQuery.isEmptyObject() 函数详解
- 将本地项目仓库推到远程GitHub步骤
- pycharm使用及设置方法
- 用opencv 与qt打开raw图,以及四通道输出
- 元编程
- Angular2--通配符路由
- C#编程入门7_方法(函数)
- Bitmap和libyuv在JNI中的字节序
- python 科学计算库
- VUE.JS v-for渲染过程中 $index is not defined
- 前台
- 【JNI调用DLL动态库】Java使用JNI调用DLL动态链接库学习记录