国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RAW圖像詳解及使用Python讀取raw格式圖像并顯示

這篇具有很好參考價(jià)值的文章主要介紹了RAW圖像詳解及使用Python讀取raw格式圖像并顯示。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、RAW圖像詳解

1.1 什么是raw格式圖像?

RAW在英文中的解釋是未處理的、自然狀態(tài)的,這也就是RAW文件的真諦。RAW圖像就是CMOS或者CCD圖像感應(yīng)器將捕捉到
的光源信號轉(zhuǎn)化為數(shù)字信號的原始數(shù)據(jù),因此RAW文件也被人們稱之為“數(shù)碼底片”。RAW格式的全稱是RAW Image Format,記
錄了由相機(jī)拍攝所產(chǎn)生的一些元數(shù)據(jù),如ISO的設(shè)置、快門速度、光圈值、白平衡等信息。

1.2 RAW格式與JPG格式有什么差別?

如果一句話概括,那就是JPG格式實(shí)際上就是由RAW格式處理而來的。RAW格式記錄的是拍攝現(xiàn)場的原始數(shù)據(jù),然后經(jīng)過相機(jī)自身進(jìn)行白平衡、銳化、飽和度、色彩等等處理之后,再進(jìn)行封裝,就成為了JPG格式的照片。

python處理raw圖,深度學(xué)習(xí),python,人工智能,計(jì)算機(jī)視覺

1.3 那么RAW和JPG格式到底有什么比較大的區(qū)別呢?

實(shí)際上,JPG格式所顯示的是照片,也可以說是最終的成片,而RAW是從影像傳感器中得到的最原始的信息數(shù)據(jù)包,而非圖像。

RAW我們通常用色彩深度來表示,色彩深度的單位是bit,一般的JPG照片色彩深度為8bit,這意味著RGB這三種顏色,每個(gè)顏色有256個(gè)等級,組合起來可以產(chǎn)生總共256256256即約1677萬種不同的顏色。

關(guān)于位深可以參考我的另一篇博客:8位, 16位,24位,32位圖片顯示原理及對比、讀自己的mask、判斷是否為灰度圖

一般的RAW格式照片,目前的主流水平是12bit和14bit,比如一些全畫幅機(jī)身能夠達(dá)到14bit的水準(zhǔn)。另外一些高端的中畫幅相機(jī)能夠支持16bit RAW格式文件。色彩深度高了,攜帶的信息也就更加豐富,但是體積也就增加了,不過這個(gè)數(shù)值仍然是越大越好。

二、使用Python讀取raw格式圖像并顯示

首先確定我們的raw圖像是多少位的,我們的是16bit

實(shí)現(xiàn)只需兩個(gè)基本庫,能夠?qū)崿F(xiàn)16位圖片的無損轉(zhuǎn)換,轉(zhuǎn)換裁切保存之后的圖片位深依然為16bit,方便以后處理。

  • 一律使用np.fromfile讀取之后再轉(zhuǎn)化為.png或者.tff格式,讀取的時(shí)候直接傳入文件路徑,不用加'r'

2.1 輸出為png圖像顯示

import os.path
import os
from PIL import Image
import numpy as np
import cv2
import imageio

def read(input_dir, shape, save_dir):
    if not os.path.exists(save_dir):
        os.makedirs(save_dir)
    # img = cv2.imread('D:\Installer\\h_1_3_00_2_4_0_0_5_30_01_0_00.raw')

    # type = img.dtype
    w, h, c = shape
    input_dir = os.path.join('D:\\JS17\rawData\\', input_dir)
    list = os.listdir(input_dir)
    for path in list:
        if path.endswith('.xml'):
            continue
        ### 直接傳入文件路徑,不用加'r'
        imgData = np.fromfile(input_dir + '\\' + path, dtype='uint16')   ### 這里是16bit所以要uint16
        w, h, c = 5120, 4096, 1
        # # imgData = np.fromfile(r'D:\Installer\\h_1_1_0_2_0_4_1_5_38_63_0.raw', dtype='uint16')   # SAR
        # # w, h, c = 2048, 2048, 1
        imgData = imgData.reshape(w, h, c)
        cv2.imwrite(save_dir + path.split('.')[0] + '.png', imgData)
if __name__ == '__main__':
	#### 傳入raw文件夾;圖像的w, h, c;圖像的保存路徑
    read('SAR', [2048, 2048, 1], 'D:\\JS17\TIFData\SAR\\')
    read('中波紅外', [1024, 1280, 1], 'D:\\JS17\TIFData\MiddleHW\\')
    read('可見光', [4096,5120, 1], 'D:\\JS17\TIFData\KJG\\')

2.2 輸出為tif圖像顯示

import imageio
import numpy as np
 
raw=np.memmap('140-200-1000(2).raw',dtype=np.uint16,shape=(4288,3524))#讀取16位raw圖片
imageio.imsave('raw.tif',raw)#轉(zhuǎn)換格式與保存

### 上面兩行其實(shí)就已經(jīng)讀取并且轉(zhuǎn)換完成了,已經(jīng)可以顯示了
### 下面是做裁剪的,僅供參考
tif=np.memmap('raw.tif',dtype=np.uint16,shape=(4288,3524))#讀取16位tif圖片
resize=tif[1200:1700,1200:1700]
imageio.imsave('resize.tif',resize)#對16位tif圖片裁切

參考:關(guān)于RAW格式照片 你不可不知的十件事
使用Python讀取raw格式圖像并顯示
[史上最全]16bit RAW圖片讀取、轉(zhuǎn)換、裁切、保存文章來源地址http://www.zghlxwxcb.cn/news/detail-556746.html

到了這里,關(guān)于RAW圖像詳解及使用Python讀取raw格式圖像并顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包