中南大学MATLAB课程实践5.docx
文本预览下载声明
中南大学MATLAB课程实践5
MATLAB课程实践5:图像处理一、实验目的本实验主要通过MATLAB图像处理工具,学习图像处理的基本方法,掌握一些简单的图像处理算法的实现。二、实验内容及步骤1. 图像读取与显示2. 灰度图像处理3. 像素级处理4. 几何变换5. 图像滤波6. 形态学处理7. 图像分割8. 图像特征提取三、实验过程及代码实现1. 图像读取与显示% 读取图像img = imread(lena.jpg);% 显示图像imshow(img);2. 灰度图像处理% 将图像转换为灰度图像gray_img = rgb2gray(img);% 显示灰度图像imshow(gray_img);3. 像素级处理% 获取图像的尺寸[rows, cols] = size(gray_img);% 对图像的每个像素点进行处理for i = 1:rows for j = 1:cols % 计算当前像素点的新值 new_value = gray_img(i, j) * 2; % 更新图像中当前像素点的值 gray_img(i, j) = new_value; endend% 显示处理后的图像imshow(gray_img);4. 几何变换% 平移tx = 50;ty = 50;tform = affine2d([1 0 0; 0 1 0; tx ty 1]);output_img = imwarp(img, tform);imshow(output_img);% 旋转angle = 30;output_img = imrotate(img, angle);imshow(output_img);% 缩放scale = 0.5;output_img = imresize(img, scale);imshow(output_img);5. 图像滤波% 均值滤波output_img = imfilter(img, fspecial(average, [3 3]));imshow(output_img);% 中值滤波output_img = medfilt2(img, [3 3]);imshow(output_img);6. 形态学处理% 腐蚀se = strel(square, 3);output_img = imerode(img, se);imshow(output_img);% 膨胀output_img = imdilate(img, se);imshow(output_img);% 开运算output_img = imopen(img, se);imshow(output_img);% 闭运算output_img = imclose(img, se);imshow(output_img);7. 图像分割% 阈值分割threshold = graythresh(img);binary_img = imbinarize(img, threshold);imshow(binary_img);% 区域生长seed_row = 100;seed_col = 100;output_img = regiongrowing(img, seed_row, seed_col);imshow(output_img);8. 图像特征提取% 边缘检测output_img = edge(img, sobel);imshow(output_img);% 角点检测corners = detectHarrisFeatures(img);output_img = insertMarker(img, corners.Location, x);imshow(output_img);四、实验总结通过本次实验,我掌握了MATLAB图像处理工具的基本使用方法,对图像处理算法有了更深入的了解。我学会了如何读取和显示图像、进行灰度图像处理、像素级处理、几何变换、图像滤波、形态学处理、图像分割和特征提取等基本操作。这些知识对于我深入理解图像处理的原理和技术应用有很大的帮助。通过实验,我也发现了一些问题,如图像处理算法的复杂度和执行时间、参数的选择等,这些问题需要进一步的学习和实践来解决。总的来说,本次实验对我的学习和研究有很大的帮助,我会继续加强对MATLAB图像处理的掌握,提高自己的图像处理技能。
显示全部