【探测器】opencv显示探测器的raw图像

【探测器】opencv显示探测器的raw图像

  • 1、背景
  • 2、代码
  • 3、下载

1、背景

对于探测器(相对于可见光成像的相机,这里的探测器指的是对X光成像的相机)。
RAW文件几乎是未经过处理而直接从CCD或CMOS上得到的信息。
RAW格式是无损格式,相比于JPG格式,RAW格式的好处有很多,它会记录下成像的的所有细节,这些细节在后期您可以根据场景进行修改。

其中RAW格式的文件可以作为VG的CT建模的输入文件,但是请注意文件的格式是uint16,即单个像素可以被表达成2*16-1(65536)层次!

2、代码

代码很简单,使用numpy读取raw文件,并将数据排列成3维数组,然后opencv显示即可。
代码示例如下:

# -*- coding: utf-8 -*-
'''prompt:I only publish in csdn:jn10010537! 2023.06.28;'''
import cv2
import numpy as npdef read_raw_from_detector(raw_dir,rows=1536,cols=1536,channels = 1,dtype='uint16'):'''读取探测器拍摄的raw图像。本函数,默认是NDT0505J拍摄的raw图像。:param raw_dir:raw文件路径:param rows:行,即图像的像素高度;:param cols:列,即图像的像素宽度;:param channels:通道,默认是单通道。:param dtype:像素的数据类型,默认是uint16:return:None'''# 利用numpy的fromfile函数读取raw文件,注意指定正确的数据格式raw_data = np.fromfile(raw_dir, dtype=dtype)# 将1维数组转化为3维数组,reshape函数将读取到的数据进行重新排列。img_rgb = raw_data.reshape(rows, cols, channels)# cv2.WINDOW_NORMAL就是0,窗体可以自由变换大小cv2.namedWindow("raw_pic",0)# 指定窗体名称,以及要显示的numpy多维数组;cv2.imshow("raw_pic",img_rgb)cv2.waitKey()if __name__ =="__main__":raw_dir=r"./ACap_1_184.00_1536X1536.raw"read_raw_from_detector(raw_dir)

运行如下:
在这里插入图片描述

3、下载

提供了ACap_1_184.00_1536X1536.raw下载路径,以便您练习!
https://download.csdn.net/download/jn10010537/87955410

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7630.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【什么是iMessage苹果推】怎样来获取设备令牌(Device Token)实现步骤

要获取设备令牌(Device Token),您需要在应用程序中实现以下步骤: 在应用程序中请求用户授权:您需要请求用户授权允许应用程序发送远程通知。这可以通过使用 UNUserNotificationCenter(User Notifications …

国产32位MCU低成本烟机变频风机方案

家用油烟机主要由风机系统,控制系统,滤油装置,外壳和悬吊装置组成,其中风机系统是油烟机的心脏,通常由电机和叶轮组成,一台油烟机功率的大小,也是由风机系统决定的,控制系统是烟机最…

笔记:flutter中一些流行的 UI 相关库

笔记:flutter中一些流行的 UI 相关库 CSDN:https://jclee95.blog.csdn.net本文收录了很多在 flutter pub 上显示流行度较高的第三方UI库和UI框架,对它们的效果进行了截图,目的是方便开发时进行查找;这些模块多数来自于…

CLion开发STM32

CLion开发STM32 opencd https://gnutoolchains.com/arm-eabi/openocd/ gcc-arm-none-eabi https://launchpad.net/gcc-arm-embedded/download arm-none-eabi-gcc -v“gcc-arm-none-eabi是GNU项目下的软件,是一个面向裸机arm的编译器。 mingw 需要把opencd和的工具链添加…

使用Selenium-PO设计模式提高Web自动化测试效率

PO(page object)设计模式是在自动化中已经流行起来的一种易于维护和减少代码的设计模式。在自动化测试中,PO对象作为一个与页面交互的接口。测试中需要与页面的UI进行交互时,便调用PO的方法。这样做的好处是,如果页面的…

51单片机一氧化碳烟雾报警器mq2MQ7ADC0832采集

实践制作DIY- GC0152--- 一氧化碳烟雾报警器 基于51单片机设计------- 一氧化碳烟雾报警器 二、功能介绍: STC89C52单片机lcd1602adc0832mq2烟雾传感器mq7烟雾传感器蜂鸣器2个按键设定烟雾报警阈值 2个按键设定一氧化碳报警阈值 1.通过ADC0832采集MQ2烟雾输出的电…

554、Vue 3 学习笔记 -【常用Composition API(二)】 2023.06.30

目录 一、常用Composition API1. 拉开序幕的setup2. ref函数3. reactive函数4. Vue3.0中的响应式原理5. reactive对比ref 二、参考链接 一、常用Composition API 1. 拉开序幕的setup (1)Vue3.0中一个新的配置项,值为一个函数。 &#xff08…

MySQL-分库分表详解(二)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

0基础学习VR全景平台篇 第54篇: 高级功能-皮肤

功能位置示意 一、本功能将用在哪里? 皮肤功能,摆脱传统VR全景展示样式,自行选择场景与全景分组的界面模板,从而与不同的应用行业风格相互适应,达到最贴切的展示效果。 是在各种风格的VR全景作品中,最快实…

转型开发后——我心里的Windows与Linux

前言 要说接触Linux还是在15年刚刚步入开发工作没多久以后才开始接触的,之前在学开发的时候都是用的windows,不管是学习前端,还是学习PHP和Python。当时觉得在Windows下搞这些开发语言好像理所当然就是这样的。下一个WAMP、XAMPP、Python环境…

zookeeper入门

一、分布式思想 当某个文件数据的体量超出了某一台服务器所能存储的最大容量时,如要继续存储,则首先根据数据整体规模大小以及单台服务器所能存储的最大容量,计算出存储改文件所需要的服务器总台数,进而实现服务器节点数量的规划&…

MBD开发 STM32 UASRT

目录 轮询 ptintf 中断方式 DMA方式 轮询 串口要加入这两个文件 bug在于接到10个后会一直发送 ptintf function buffPtr convert(buff)if coder.target(Sfun)%固定句式%Executing in MATLAB, Buff is nullbuffPtr uint32(0); elsecoder.cinclude(getBuffPtr.h);%加入头…