MATLAB/FPGA图像学习-rgb转灰度

MATLAB/FPGA图像学习-rgb转灰度

之前学FPGA 先要要应用在图像方面,在网上也找了很多资料,matlab算是资源最多了的,博主本着学习的目的,将每天所学的写成笔记,方便以后的复习,同时也可以让刚学习的小伙伴参考一下。如果大神们能看到,也希望能够指导下。博主对自己的方向还很迷茫。十分乐意能与大家相互交流学习。
rgb转灰度
Gray = R0.299 + G0.587 + B*0.114

clc;
clear all;
close all;
rgb_data=imread('juncao.jpg');
imshow(rgb_data);
r_data=rgb_data(:,:,1);
g_data=rgb_data(:,:,2);
b_data=rgb_data(:,:,3);
[row,col,dim]=size(rgb_data);
gray_data=zeros(row,col,dim);%gray_data=rgb_data;
y_gray=zeros(row,col);
cb_gray=zeros(row,col);
cr_gray=zeros(row,col);
for r=1:row
    for c=1:col
        y_gray(r,c)=r_data(r,c)*0.299+g_data(r,c)*0.587+b_data(r,c)*0.114;
    end
end
gray_data(:,:,1)=y_gray;
gray_data(:,:,2)=y_gray;
gray_data(:,:,3)=y_gray;%灰度值
gr=uint8(gray_data);
figure;
imshow(gr);

刚开始取灰度的时候 出了一个错误 ,matlab只显示了原图 ,灰度图只有有限个黑点的白色图片,后来问了大佬后 ,才发现在 %灰度值 这一步有问题。本来gray_data是unit型的数据,但在经过灰度值赋值后变成了double型。数据类型的变换导致了图片只有有限个黑点(具体可以查看相关资料),解决办法就是把double型数据变成uint8。
zeros生成0矩阵;zeros(x,y)(与ones效果相同)
figure保存前一张图片
附上显示的原图与灰度图

出错的:

在这里插入图片描述改正后的:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值