• 9比特平面分层


    1、实战原理

    如图,一张256级灰度图像,其中一个像素点由8个比特组成,8个比特的信息加起来才构成一个像素点。比如灰度为194的像素点A,转换成二进制值为1100_0010,其中从左往右分别为第7,6,5,4,3,2,1,0比特。每个比特平面中A像素点的值取决于A的灰度的二进制在该比特位的取值。

    此次实战共有640*480个像素点,众多像素点就构成了8比特平面分层,每个比特平面都是二值图像。因此每层中的每个像素点可能是黑,可能是白。

    2、matlab验证:

    clear all;
    
    RGB = imread('G:	estRGB565image.jpg');   %读取图片文件
    
    gray = rgb2gray(RGB);         %转换为灰度图像
    [ROW,COL,N] = size(gray);     %获得图片尺寸[高度,长度,维度]
    
    subplot(3,3,1);
    imshow(gray,[]);
    title('原始图像');
    
    for k=1:8
        for i=1:ROW
            for j=1:COL
                tmp(i,j) = bitget(gray(i,j),k);%将RGB(i,j)灰度值分解为二进制串,取第k位
            end
        end
        subplot(3,3,k+1);
        imshow(tmp,[]);
        ind = num2str(k-1);
        imti = ['',ind,'比特平面'];
        title(imti);
    end
    View Code

    matlab结果:

     

    3、fpga实现:

    这个实战的灰度图片是从实战6那里取得的灰度图片,也就是把YCbCr格式中的Y分量提取出来。

    fpga效果:

    我这里通过按键依次切换各层图片:由于图片太多,我用手机记录了。

  • 相关阅读:
    2014年10月20----数组1
    类型--2014年10月19日
    2014年10月17----类别
    2014年10月16号--for语句实例
    2014年10月12日——运算符
    java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值
    Java安装与环境配置
    SQL语言增加、修改、删除数据的语法
    StringBuffer的用法(转)
    JSTL标签库简介
  • 原文地址:https://www.cnblogs.com/FPGAer/p/14105532.html
Copyright © 2020-2023  润新知