Matalb--读取图像及像素值

    彩色图像是由G、R、B三中颜色像素合成的,图像矩阵的原点一般算法选择在图像的左上角,向右为x,向下为y,即(0,0)。 彩色图像形成的三维数组中前两位表示图像的像素点的坐标,第三位为1时表示是图像中R的值,为2时表示G的值,为3时表示B的值。
    代码实现如下

clc;  
clear;  
%读入原图像及获取大小  
image = imread('lena.jpg');  
% 分别读取R、G、B值  
image_r=image(:,:,1);  
image_g=image(:,:,2);  
image_b=image(:,:,3); 

image_gray=rgb2gray(image);%将彩图转换为灰度图

hist_image=imhist(image);%计算总图直方图
hist_gray=imhist(image_gray);%计算灰度直方图
hist_r=imhist(image_r);%计算Red部分直方图
hist_g=imhist(image_g);%计算Green部分直方图
hist_b=imhist(image_b);%计算Blue部分直方图
%  测试RGB输出  
figure(1);%在窗口1中显示原图、灰度图及R、G、B图
subplot(2,3,1),imshow(image),title('Original image');
subplot(2,3,2),imshow(image_gray),title('Gray image');
subplot(2,3,3),imshow(image_r),title('Red component');    
subplot(2,3,4),imshow(image_g),title('Green component'); 
subplot(2,3,5),imshow(image_g),title('Blue component');    
%  画直方图
figure(2);
subplot(2,3,1),bar(hist_image),title('Grayscale histogram');%画总直方图
subplot(2,3,2),bar(hist_gray),title('Gray histogram');%画灰度直方图
subplot(2,3,3),bar(hist_r),title('Red histogram');%画Red部分直方图
subplot(2,3,4),bar(hist_g),title('Green histogram');%画Green部分直方图
subplot(2,3,5),bar(hist_b),title('Blue histogram');%画Blue部分直方图

效果如下


此图为上图所对应的直方图


### 回答1: S-Function是MATLAB中用于在模型中编写自定义模块的工具。S-Function可以用C语言或C++语言编写,它们可以在Simulink模型中实现更加复杂的功能,并且比Simulink原生模块更加高效。而MATLAB中的MEX(MATLAB executable)文件,可以使用户能够编写其他语言的函数,并且通过MEX来在MATLAB中进行调用和使用。 如果您想要使用MEX文件编写S-Function,将需要一些额外的工具和配置。结果是,MEX文件可以实现比C或C++更高效性能。此外,您还可以通过使用不同的编译器,包括Microsoft Visual Studio和GCC等,来完全控制编译流程。这使得S-Function可以适应您的任何需求和要求。 在使用MATLAB S-Function时,您需要掌握一些特定的技能和知识。首先,您应该掌握S-Function的结构和数据流,包括入口和出口等。其次,您应该了解MATLAB MEX文件和编译器的使用,因为它们是实现S-Function所必需的。最后,您还需要了解一些应用场景,例如如何计算更复杂的模块或如何处理非线性方程。 总的来说,S-Function是MATLAB中一个非常重要的工具,可以帮助您实现更高效的模型,提高计算性能,并且允许您利用其他语言编写的函数。掌握S-Function的方法和技巧,需要一些学习和练习,但是这个过程一定会给您带来很大的收益。 ### 回答2: MATLAB s-function是用于创建Simulink模型的自定义模块的一种方式,它可以使用MATLAB代码来实现特定的功能。S-function的基本模板包括初始化、输出和更新函数,我们可以在其中编写特定的算法和逻辑来实现自定义的模块。 要学习S-function,需要掌握一些基本的MATLAB编程知识,比如函数、数组和循环等。在使用S-function之前,需要先了解Simulink的基础知识,比如模块、信号和块参数等。 学习S-function的过程中,可以参考MATLAB的官方文档和教程,这些文档提供了详细的说明和示例,包括如何创建S-function、如何编写各种类型的函数、如何调试S-function等。此外,还可以查阅一些博客、论坛和视频教程来学习其他人的经验和技巧。 总之,学习S-function需要有一定的MATLAB和Simulink基础,并需要不断练习和思考,才能逐渐掌握其使用方法和技巧。学习S-function的过程中,也可以结合具体的应用场景和案例,来更好地理解和掌握其使用方法。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值