最近研究读取Elekta加速器XVI产生的his格式的数据读取,利用OpenCV 进行显示时,发现了一个错误(Ubuntu20)如下:Gtk-Message: 14:47:21.541: Failed to load module "canberra-gtk-module"

这个提示可能是缺少canberra-gtk-module模块没有安装。作为新一代青年,上网搜索才是解决方法。

上网搜索得知,我的判断是对的,于是

sudo apt-get install libcanberra-gtk*

神奇的是,我的显示模式也瞬间变得清晰了,太神奇了。

可能会有小伙伴们想知道怎样读取HIS格式的文件了,告诉大家,很简单的。(文件在这里)文件的大小为524388个字节,前100个字节是文件的文件头信息,

28672    #文件的ID

68          #文件头大小

0            #版本

100        #

8            #文件的大小,这里使用了4个字节表示,读取错误

32          #图像信息的大小

1            #X方向坐上

1            #  Y方向,左上

512        #X右下   也可以理解成row

512        #Y右下                         column

1            # 不解释了,后面的没有用了

0

0

0

0

0

4           #使用16位数据进行存储

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

61784

65446

46682

65504

64609

65525

65534

65535

41560

65455

1888

638

46661

65455

1888

638

从第101个字节开始,到512×512×2结束,是数据部分。

代码如下:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <fstream>
#include <vector>
#include <string>
 
using namespace std;
 
int main(int,char**)
{
    string fileName="../data/test.his";
 
    fstream reader;
    reader.open(fileName.c_str(),ios::in|ios::binary); //read file as binary
    if(!reader.is_open()){
        cout<<"read file failed."<<endl;
        return -1;
    }
 
 
 
    reader.seekg(0,ios::end);
    cout<<"File size is: "<<reader.tellg()<<endl;  // determin the file size.
 
    reader.seekg(0,ios::beg);    //pointer come back to the initial position.
    vector<unsigned short> header;
    char buffer[100];
    reader.read(buffer,100);    // read 1 byte every time.
    for(int i=0;i<50;i++){
        unsigned short p=buffer[2*i+1]<<8|buffer[2*i+0];   //little endiant
        header.push_back(p);
    }
 
    for(vector<unsigned short>::iterator it=header.begin();it!=header.end();++it){
        cout<<*it<<endl;
    }  //display the header information
    int row,col;
    row=header[8];
    col=header[9];
 
    // Reade the pixel data
 
    reader.seekg(100,ios::beg);
    int m=512*512;
    char data[m*2];
    reader.read(data,m*2);  //read the pixel data
 
    unsigned short pixel[m];
    for(int i=0;i<m;++i){
        pixel[i]=data[2*i+1]<<8|data[2*i+0];  //little endiant
    }
 
    reader.close();
    // display the image using OpenCV
    cv::Mat image=cv::Mat(col,row,CV_16UC1,pixel);
    cv::normalize(image,image,0,255,cv::NORM_MINMAX,CV_8UC1);
    cv::imshow("",image);
    cv::waitKey(0);
    return 0;
}

Gtk-Message: 14:47:21.541: Failed to load module “canberra-gtk-module“ 的处理方法相关推荐

  1. SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.解决方法

    在IDEA中启动JAVA程序之后,控制台中报以下错误信息 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder&quo ...

  2. Failed to load the JNI shared library 的解决方法

    最近打开Eclipse报错,如下图: 原因: JDK与eclipse版本不兼容,会出现打开报错:Failed to load the JNI shared library............这个问 ...

  3. Failed to load AppCompat ActionBar with unknown error

    复制别人demo的布局,之后没有显示界面,下面提示 Failed to load AppCompat ActionBar with unknown error 解决方法:在style 里面的 Them ...

  4. The Wide and Deep Learning Model(译文+Tensorlfow源码解析) 原创 2017年11月03日 22:14:47 标签: 深度学习 / 谷歌 / tensorf

    The Wide and Deep Learning Model(译文+Tensorlfow源码解析) 原创 2017年11月03日 22:14:47 标签: 深度学习 / 谷歌 / tensorfl ...

  5. jupyter notebook报错Failed to load module appmenu-gtk-module

    完整报错如下: Gtk-Message: 09:20:49.827: Failed to load module "appmenu-gtk-module" Gtk-Message: ...

  6. Ubuntu 安装时出现“failed to load ldlinux.c32” 方法总结

    方法1: 启动的时候如果不开启UEFI,则会提示: Failed to load ldlinux.c32 Boot failed: please change disks and press a ke ...

  7. Windbg加载dump的时候报”Failed to load data access DLL, 0x80004005”错误

    Windbg加载dump的时候报"Failed to load data access DLL, 0x80004005"错误 "Failed to load data a ...

  8. 【转】Failed to load module for FS type ‘bdb’ in TortoiseSVN 1.6.x

    http://www.robertkan.net/blog/2009/05/15/failed-to-load-module-for-fs-type-bdb-in-tortoisesvn-16x To ...

  9. log4j配置报错:ERROR Failed to load driver.ClassNotFoundException.

    错误①: log4j:ERROR Failed to load driver java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.D ...

  10. 成功解决OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2

    成功解决OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2 目录 解决 ...

最新文章

  1. SUCEFUL:将ATM变得“惟命是从”的新型恶意程序
  2. 【光通信】用于可见光通信的OFDM发射机和接收机
  3. 用ASM编写一个简单的Windows Shellcode思路总结
  4. 利用Python中的BeautifulSoup库爬取安居客第一页信息
  5. GridView类容器中的DropDownList联动
  6. 面向小姐姐的编程——JAVA面向对象之封装(二)
  7. sql概述_SQL Notebook简介和概述
  8. Tableau可视化学习笔记:day13-14
  9. P2525 Uim的情人节礼物·其之壱(入门,数学)
  10. 林信良(良葛格)在CSDN上也开专栏了~
  11. 2019年8月7日暑假训练
  12. Java项目:课程在线学习与测试系统(java+SSM+redis+Bootstrap+Tomcat+mysql)
  13. [QDialog]qt虚拟键盘的实现以及qdateedit实现打开虚拟键盘
  14. android启动百度地图应用并开始导航,android打开外部地图导航(百度、高德、腾讯)...
  15. 很经典的十五句话,从别人的blog上看来的!
  16. Android MediaPlayer中的RTSP(一):RTSP简介
  17. tcc275CAN报文发送多帧只发送一帧的原因
  18. Python全国计算机等级考试(2021)
  19. 动态参数——arguments
  20. javascript - js 创建网页 url 桌面快捷方式(兼容chrome)-书签工具

热门文章

  1. cad安装日志文件发生错误_CAD安装问题,CAD安装时为什么显示内部发生错误急?...
  2. 小微企业如何创作一个具有品牌故事的软文营销方案
  3. 手机电脑浏览器抓取京东Cookies教程
  4. excel函数交叉定位查找内容+根据内容查找行列号(反向查找)
  5. 【TCP/IP】IP地址分类和特殊IP地址
  6. 编译原理 实验二 递归下降语法分析程序
  7. 华为android打开usb调试模式,华为P6 USB调试在哪 如何打开USB调试【详解】
  8. 编译原理 NFA确定化与DFA最小化
  9. 分析开源三大CMS中WordPress相比Drupal与Joomla是怎样摘取皇冠的
  10. 微信公众号裂变推广有哪些方法?做一次公众号裂变活动有哪些推广渠道?