I = imread('原图.jpg'); b = imadjust(I,[0.5 1],[]); %figure(1);imshow(a); %b = imadjust(a,[0.3 1],[]); figure(2);imshow(b); c=rgb2gray(b);%将彩图转换为灰度图 figure(3),imshow(c);title('灰度图像'); if length(size(c))>2 d=rgb2gray(c); end figure(5);subplot(1,2,1); d=adapthisteq(c); imshow(d); title('adapthisteq均衡后图'); subplot(1,2,2);imhist(d);title('adapthisteq均衡后直方图'); figure(6);subplot(1,2,1); e=histeq(c); imshow(d); title('histeq均衡后图'); subplot(1,2,2);imhist(e); title('histeq均衡后直方图'); thresh = graythresh(d); %自动确定二值化阈值 f = im2bw(d,thresh); %对图像二值化 figure(7) imshow(f) %显示二值化之后的图片 g=edge(f,'sobel',0.18,'both');%选择阈值0.18,用roberts算子进行边缘检测 figure(8),imshow(g);title('roberts 算子边缘检测图像'); h=bwareaopen(g,15);% 去除聚团灰度值小于2000的部分 figure(9),imshow(h);title('从对象中移除小的对象');这段程序设计流程是什么
时间: 2023-09-24 12:03:40 浏览: 77
上面的这段程序主要是对一张彩色图像进行灰度处理,然后进行直方图均衡化,接着进行二值化,最后进行边缘检测和去除小的对象的操作。具体的设计流程如下:
1. 读取一张原始彩色图像,命名为I。
2. 对原始图像进行亮度调整,将像素值在0.5到1之间的像素映射到0到255之间,其他像素不变,命名为b。
3. 将b转换为灰度图像,命名为c。
4. 如果c是彩色图像,则将c转换为灰度图像,命名为d。
5. 对c进行直方图均衡化,命名为e1。
6. 对e1进行自适应直方图均衡化,命名为d1。
7. 对d1进行二值化处理,命名为f。
8. 对f进行边缘检测,选择阈值为0.18,用Roberts算子进行检测,命名为g。
9. 对g进行去除小的对象的操作,去除灰度值小于15的对象,命名为h。
10. 显示二值化之后的图片f,Roberts算子边缘检测图像g和从对象中移除小的对象后的图像h。
相关问题
用MATLAB对4.jpg 对图像进行去噪、增强处理; 运用全局阀值进行二值化; 用膨胀腐蚀等形态学方法实现提取。 运用局部阀值进行二值化。
首先,导入图像并显示:
```
img = imread('4.jpg');
imshow(img);
```
然后,对图像进行去噪和增强处理,可以使用MATLAB的`medfilt2`和`imadjust`函数:
```
% 去噪
img_denoised = medfilt2(img);
% 增强
img_enhanced = imadjust(img_denoised);
```
接下来,使用全局阈值进行二值化,可以使用MATLAB的`graythresh`和`imbinarize`函数:
```
% 全局阈值二值化
global_threshold = graythresh(img_enhanced);
img_global_binary = imbinarize(img_enhanced, global_threshold);
```
然后,使用膨胀和腐蚀等形态学方法进行提取,可以使用MATLAB的`imdilate`和`imerode`函数:
```
% 膨胀
se = strel('disk', 5);
img_dilated = imdilate(img_global_binary, se);
% 腐蚀
img_eroded = imerode(img_dilated, se);
```
最后,使用局部阈值进行二值化,可以使用MATLAB的`adaptiveThreshold`函数:
```
% 局部阈值二值化
img_local_binary = imbinarize(img_enhanced, 'adaptive', 'Sensitivity', 0.5);
```
完整代码如下:
```
img = imread('4.jpg');
imshow(img);
% 去噪
img_denoised = medfilt2(img);
% 增强
img_enhanced = imadjust(img_denoised);
% 全局阈值二值化
global_threshold = graythresh(img_enhanced);
img_global_binary = imbinarize(img_enhanced, global_threshold);
% 膨胀
se = strel('disk', 5);
img_dilated = imdilate(img_global_binary, se);
% 腐蚀
img_eroded = imerode(img_dilated, se);
% 局部阈值二值化
img_local_binary = imbinarize(img_enhanced, 'adaptive', 'Sensitivity', 0.5);
% 显示结果
figure;
subplot(2,2,1); imshow(img); title('原图');
subplot(2,2,2); imshow(img_global_binary); title('全局阈值二值化');
subplot(2,2,3); imshow(img_eroded); title('形态学提取');
subplot(2,2,4); imshow(img_local_binary); title('局部阈值二值化');
```
matlab生成图像
### 使用Matlab创建和保存不同类型图表与图像
在 Matlab 中,可以通过多种方式来创建不同的图表和图像,并利用特定函数将其保存到本地磁盘上。
#### 创建简单线形图并保存
为了展示如何绘制简单的二维线条图形以及怎样对其进行存储:
```matlab
% 定义数据集
x = linspace(0, 2*pi);
y = sin(x);
% 绘制正弦曲线
plot(x,y,'LineWidth',2)
title('Sine Wave')
xlabel('X Axis Label')
ylabel('Y Axis Label')
% 设置网格显示
grid on;
% 调整坐标轴范围
axis([min(x) max(x) min(y)-0.5 max(y)+0.5])
% 保存当前Figure窗口内的内容至PNG文件中
saveas(gcf,'sine_wave.png') [%1]
```
此段代码先定义了一组用于表示正弦波的数据点 `x` 和 `y`, 接着调用了 plot 函数生成了一个带有标签、标题及适当边界的正弦波形图。最后通过 saveas 命令把该 Figure 对象的内容导出了 PNG 文件格式。
#### 处理并保存真实世界图片
对于处理实际存在的照片或其他形式的影像资料,则可采用 imread 来加载它们进入工作空间作为矩阵对象;之后再依据需求调整其属性或执行其他操作之前同样能够借助于 saveas 实现持久化保存:
```matlab
pic_path = 'cameraman.tif'; % 输入图片路径
pic = imread(pic_path); % 打开并读取图片
imshow(pic); % 显示原图
% 如果希望增强对比度的话还可以继续做些变换...
enhancedPic = imadjust(pic,[],[],0.8);
figure();
subplot(1,2,1), imshow(pic), title('Original Image');
subplot(1,2,2), imshow(enhancedPic), title('Enhanced Contrast');
% 同样地,这里也支持将新得到的结果存下来
imwrite(enhancedPic,'enhanced_cameraman.jpg','jpg');[%2]
```
上述脚本展示了从读入一张名为 cameraman 的测试图像开始,经过亮度调节后再次呈现出来供比较查看的过程。值得注意的是,在这一步骤里选择了另一种更为专业的图像写入命令——imwrite 来完成最终版本的 JPEG 编码输出。
阅读全文
相关推荐
















