FPGA 图像分层

前言
我们知道,一副图像是有许多个像素组成,而每个像素是一个数值。对不同类型(bmp.jpg)图像其像素数值是不同的。例如一个256灰度级的图像,其每个像素的是用一个8bit的数值表示0至255个灰度范围。实际中,将图像的所有8bit数值分别提取出来,形成8个新的图像,就是图像分层。
这里写图片描述

MATLAB代码

clear;
clc;
y = imread('C:/Users/Administrator/Desktop/image_l/im1.jpg');
x = (rgb2gray(y));%将原始图像转换为灰度图像,如果本身就是灰度图可以去掉rgb2gray函数
[h w] = size(x);
subplot(3,3,1);
imshow(y)
imwrite(x,'x.bmp');
title('原始图像');
for k=1:8
 for i=1:h
     for j=1:w
      tmp(i,j) = bitget(x(i,j),k);%bitget函数首先将X(i,j)处灰度值分解为二进制串,然后取第k位
     end
 end
 subplot(3,3,k+1);
 imshow(tmp,[]);
 ind = num2str(k);
 imti = ['第',ind,'个位平面'];
 title(imti);
End

FPGA源码

//------------------------------------------------------------------------------------------------------
// layer
//------------------------------------------------------------------------------------------------------
//assign TFT_rgb = {o_y_8b[7],4'b0,o_y_8b[7],5'b0,o_y_8b[7],4'b0};     //Y The eighth layer
//assign TFT_rgb = {o_y_8b[6],4'b0,o_y_8b[6],5'b0,o_y_8b[6],4'b0};     //Y The seventh layer
//assign TFT_rgb = {o_y_8b[5],4'b0,o_y_8b[5],5'b0,o_y_8b[5],4'b0};       //Y The sixth layer
//assign TFT_rgb = {o_y_8b[4],4'b0,o_y_8b[4],5'b0,o_y_8b[4],4'b0};       //Y The fifth layer
//assign TFT_rgb = {o_y_8b[3],4'b0,o_y_8b[3],5'b0,o_y_8b[3],4'b0};       //Y The fourth layer
//assign TFT_rgb = {o_y_8b[2],4'b0,o_y_8b[2],5'b0,o_y_8b[2],4'b0};       //Y The third layer
//assign TFT_rgb = {o_y_8b[1],4'b0,o_y_8b[1],5'b0,o_y_8b[1],4'b0};       //Y The second layer
assign TFT_rgb = {o_y_8b[0],4'b0,o_y_8b[0],5'b0,o_y_8b[0],4'b0};       //Y The first layer
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值