matlab1、调用电脑前置摄像头自拍一张本人照片,导入到电脑桌面,命名为姓名+学号,利用 imread( ) 函数读取刚刚拍摄的照片,存入一个数组中,然后在 Matlab 显示该图片,并添加标题,调整标题大小至美观合适,标题 为姓名+班级+学号; 2、利用 whos 命令提取刚刚读入图像的基本信息; 3、利用 imfinfo 函数获取图像文件的压缩、颜色等详细 信息; 4、将自拍图像转变为灰度图,显示并加标题,调整标 题大小至美观合适,标题内容为灰度图+姓名; 5、将灰度图转变为二值化图像,显示并加标题,调整 标题大小至美观合适,标题内容为二值化图像+姓名。要求图片运用前均进行降噪,最后四张图片同时显示
时间: 2024-03-05 09:51:10 浏览: 120
以下是实现上述要求的 Matlab 代码:
```matlab
% 1. 调用电脑前置摄像头自拍照片
cam = webcam('USB2.0 Camera');
preview(cam);
pause(5); % 等待5秒,让用户自拍
img = snapshot(cam);
clear('cam');
% 将照片命名为姓名+学号
name = 'YourName';
class = 'YourClass';
std_num = 'YourStudentNumber';
filename = [name, class, std_num];
% 保存照片到桌面
imwrite(img, ['C:\Users\YourUsername\Desktop\', filename, '.jpg']);
% 读取照片并显示,添加标题
img = imread(['C:\Users\YourUsername\Desktop\', filename, '.jpg']);
figure('Name', 'Selfie');
imshow(img);
title(filename, 'FontSize', 16);
% 2. 提取图像的基本信息
whos img;
% 3. 获取图像文件的详细信息
info = imfinfo(['C:\Users\YourUsername\Desktop\', filename, '.jpg']);
disp(info);
% 4. 转变为灰度图像
gray_img = rgb2gray(img);
% 显示灰度图像并添加标题
figure('Name', 'Gray Image');
imshow(gray_img);
gray_title = ['Gray Image + ', name];
title(gray_title, 'FontSize', 16);
% 5. 转变为二值化图像
threshold = graythresh(gray_img);
bw_img = imbinarize(gray_img, threshold);
% 显示二值化图像并添加标题
figure('Name', 'Binarized Image');
imshow(bw_img);
bw_title = ['Binarized Image + ', name];
title(bw_title, 'FontSize', 16);
% 同时显示四张图片
figure;
subplot(2,2,1);
imshow(img);
title(filename, 'FontSize', 16);
subplot(2,2,2);
imshow(gray_img);
title(gray_title, 'FontSize', 16);
subplot(2,2,3);
imshow(bw_img);
title(bw_title, 'FontSize', 16);
subplot(2,2,4);
imshow(img);
title(filename, 'FontSize', 16);
```
以上代码中 `YourName`、`YourClass`、`YourStudentNumber` 和 `YourUsername` 都应该替换为你自己的信息。此外,如果摄像头不是通过 USB 接口连接到电脑,需要修改第一行代码中的参数。
阅读全文