日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

raw格式图片读取与显示C++,opencv

發(fā)布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 raw格式图片读取与显示C++,opencv 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??????Bayer是相機內部的原始圖片, 一般后綴名為.raw。很多軟件都可以查看, 比如PS.Bayer 模式被廣泛應用于 CCD 和 CMOS 攝像頭,它允許從一個單獨平面中得到彩色圖像。我們相機拍照下來存儲在存儲卡上的.jpeg或其它格式的圖片, 都是從.raw格式轉化而來。

??????接下來實現(xiàn)raw格式圖片的讀取與顯示,程序如下:

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;int main()
{char *rawFileName = "img.raw";FILE *fp = NULL;int ret = 0, width = 1600, height = 280;unsigned char *pRawData = (unsigned char *)malloc(width*height*sizeof(unsigned char));if (NULL == pRawData){printf("Fail to calloc buf\r\n");return -1;}if (NULL == (fp = fopen(rawFileName, "rb"))){printf("Fail to read %s.\r\n", rawFileName);return -2;}ret = fread(pRawData, sizeof(unsigned char)*width*height, 1, fp);if (ret != 1){printf("Fail to read raw data\r\n");return -3;}Mat img(Size(width, height), CV_8UC1, pRawData);Mat img2(Size(width, height), CV_8UC3, Scalar(0));cvtColor(img,img2,CV_BayerGB2BGR);cvNamedWindow("img", 1);imshow("img", img);cvWaitKey(0);cvDestroyWindow("img");return 0;
}

??????opencv實現(xiàn)了Bayer=>RGB的轉換,描述如下:
Bayer=>RGB (CV_BayerBG2BGR, CV_BayerGB2BGR, CV_BayerRG2BGR, CV_BayerGR2BGR, CV_BayerBG2RGB, CV_BayerRG2BGR, CV_BayerGB2RGB, CV_BayerGR2BGR, CV_BayerRG2RGB, CV_BayerBG2BGR, CV_BayerGR2RGB, CV_BayerGB2BGR)

Bayer 模式被廣泛應用于 CCD 和 CMOS 攝像頭. 它允許從一個單獨平面中得到彩色圖像,該平面中的 R/G/B 象素點被安排如下:

對像素輸出的RGB份量由該像素的1、2或者4鄰域中具有相同顏色的點插值得到。以上的模式可以通過向左或者向上平移一個像素點來作一些修改。轉換常量CV_BayerC1C22{RGB|RGB}中的兩個字母C1和C2表示特定的模式類型:顏色份量分別來自于第二行,第二和第三列。比如說,上述的模式具有很流行的"BG"類型。
參考網(wǎng)址1
參考網(wǎng)址2

總結

以上是生活随笔為你收集整理的raw格式图片读取与显示C++,opencv的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。