fd = fopen('video_test_pattern_avalon_generator_source_data.txt');              //打开像素源文件
A = fscanf(fd,'%d'); //读入文件中的数据
fclose(fd);
%先申明向量用于存储数据
B = zeros(224,224);
C = zeros(224,224);
R1 = zeros(50176,1);
R2 = zeros(50176,1);
R3 = zeros(224,224);
G1 = zeros(50176,1);
G2 = zeros(50176,1);
G3 = zeros(224,224);
B1 = zeros(50176,1);
B2 = zeros(224,224);
for j = 1:224
for i = 1:224
B(j,i) = A((j-1)*224+i);
end
end

% 24-Bit RGB数据结构
% R---1111 1111 --- 0000 0000 --- 0000 0000 = 16711680
% G---0000 0000 --- 1111 1111 --- 0000 0000 = 65280
% B---0000 0000 --- 0000 0000 --- 1111 1111 = 255 %---R
for i = 1:50176
R1(i) = bitand(A(i),16711680); //与操作,得到数据的高8位
end for i = 1:50176
R2(i) = bitshift(R1(i),-16); //移位操作,将数据向右移动16位
end for j = 1:224
for i = 1:224
R3(j,i) = R2((j-1)*224+i); //将数据还原成二维矩阵224X224格式
end
end %---G
for i = 1:50176
G1(i) = bitand(A(i),65280);
end for i = 1:50176
G2(i) = bitshift(G1(i),-8);
end for j = 1:224
for i = 1:224
G3(j,i) = G2((j-1)*224+i);
end
end %---B
for i = 1:50176
B1(i) = bitand(A(i),255);
end for j = 1:224
for i = 1:224
B2(j,i) = B1((j-1)*224+i);
end
end %---display
image(:,:,1) = R3; //将RGB源信息存在3维数组中
image(:,:,2) = G3;
image(:,:,3) = B2;
imshow(uint8(image)); //将3维数组信息转化为uint8格式,并显示成图片

Matlab位运算函数:

 

例子:

a = 60; % 60 = 0011 1100
b = 13; % 13 = 0000 1101
c = bitand(a, b) % 12 = 0000 1100
c = bitor(a, b) % 61 = 0011 1101
c = bitxor(a, b) % 49 = 0011 0001
c = bitshift(a, 2) % 240 = 1111 0000 */
c = bitshift(a,-2) % 15 = 0000 1111 */

运行结果:

c =
12
c =
61
c =
49
c =
240
c =
15

  

使用MATLAB对数据进行位操作以及RGB图片显示的更多相关文章

  1. matlab各类数据l图像之间的转化

    matlab各类数据图像之间的转化 rgb类型转化为二值的步骤例如以下: 1.採用命令im2double将rgb类型转化三维的double >> str='E:\programing\Ei ...

  2. 【matlab】将matlab中数据输出保存为txt或dat格式

    将matlab中数据输出保存为txt或dat格式 总结网上各大论坛,主要有三种方法. 第一种方法:save(最简单基本的) 具体的命令是:用save *.txt -ascii x x为变量 *.txt ...

  3. Matlab中数据的存储方式

    简介 MATLAB提供了丰富的算法以及一个易于操作的语言,给算法研发工作者提供了很多便利.然而MATLAB在执行某些任务的时候,执行效率偏低,测试较大任务量时可能会引起较长时间的等待.未解决这个问题, ...

  4. Matlab数据处理——数据的保存和读取方法操作

    1:dlmwrite()函数保存成txt文件 使用方法:      dlmwrite('filename', M)      使用默认分隔符“,”将矩阵M写入文本文件filename中:      d ...

  5. Matlab处理数据导出Paraview可读的vtk文件(二)

    由于我在用SPH方法仿真时用的是FORTRAN语言,并且没有找到直接输出vtk文件的代码,因此偷懒通过MATLAB转换一下数据. 用到的Matlab子程序可通过一下链接找到. Matlab处理数据导出 ...

  6. R语言读取matlab中数据

    1. 在matlab中将数据保存到*.mat 文件夹 save("data.mat","data","label")#将data和label ...

  7. AGS中通过FeatureServer插入数据失败、插入数据在WMTS请求中无法显示以及version概念的讨论

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在多个项目中,当我方接口给其他部门人员使用时出现了插入数据失 ...

  8. python matplotlib plot 数据中的中文无法正常显示的解决办法

    转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...

  9. 使用mobile jQuery 动态给select下拉添加数据,选中项默认不显示的解决方法。

    getaddress(); function getaddress(type=0,parent='') { var tid=1; $.ajax({ type: "post", ur ...

随机推荐

  1. [转]EM算法(Expectation Maximization Algorithm)详解

    https://blog.csdn.net/zhihua_oba/article/details/73776553 EM算法(Expectation Maximization Algorithm)详解 ...

  2. jupyter环境安装

    jupyter notebook环境安装 一.什么是Jupyter Notebook? 1. 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文 ...

  3. [LeetCode&Python] Problem 697. Degree of an Array

    Given a non-empty array of non-negative integers nums, the degree of this array is defined as the ma ...

  4. JSON JAVA 总结

    1.如下是我所用json第三方jar包的maven坐标 <!--可引用的jar--> <dependency> <groupId>net.sf.json-lib&l ...

  5. 利用SIFT进行特征匹配

    SIFT算法是一种基于尺度空间的算法.利用SIFT提取出的特征点对旋转.尺度变化.亮度变化具有不变性,对视角变化.仿射变换.噪声也有一定的稳定性. SIFT实现特征的匹配主要包括四个步骤: 提取特征点 ...

  6. doc四则运算

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.ut ...

  7. ubuntu软件管理

    https://www.cnblogs.com/forward/archive/2012/01/10/2318483.html 一.Ubuntu中软件安装方法1.APT方式(联网安装, 需要联网下载软 ...

  8. 浅谈STM32L071硬件I2C挂死

    STM32的IIC问题一直存在,在网上也被很多人吐槽,然而FAE告诉我,硬件IIC的问题在F1,F3,F4系列单片机存在,而在L0上已经解决了,然而这几天调试加密芯片和显示芯片,都是IIC芯片,却再一 ...

  9. Linux下安装搜狗拼音输入法

    1.安装 下面命令即可完成安装: sudo apt-add-repository ppa:fcitx-team/nightly sudo apt-get update sudo apt-get ins ...

  10. pythoy-生成器

    生成器:只有在调用的时候才会生成相应的数据(调用到这个数据的时候才会生成这个数据,没有调用到时就没有这个数据)只记录数据的当前位置 生成器不能像普通的列表一样,通过下标或者切片的方式去取生成器只能通过 ...