matlab实现不同方向颜色更改
来源:互联网 发布:阿里云os2 root 编辑:程序博客网 时间:2024/04/29 15:51
本文主要实现了下图:各个方向线段的颜色设置
1.原图如下:
2.处理的效果如下所示:
各位jpg格式颜色显示不是特别好
3.处理步骤
1.读入图像,把原图转换为灰度图像
2.定义方向滤波的模板,把图像中各个方向的图像滤除出来。
3.将滤除的图像进行二值化,并且取反。因为在二值图像中1代表白色,二在灰度图像中白色代表255.
4.为各个方向的线段定义颜色,并对提取出来的图像进行染色。
5.将各部分的分量加起来显示。
4.matlab源代码
%% clear the current momery and close all the window but mainclear all;close all;clc; %clear the instruction distrit%% read the picture and convert to the gray modeimg = imread('ban2-Models.jpg');img_gray =rgb2gray(img);figure(1);imshow(img_gray);%% covert the current dimension to the frequentimg_frq = fftshift(fft2(img_gray));img_frq_abs = abs(img_frq);%% model to fiter the directional imagemodel_fiter_1 = [1,0,0;0,1,0;0,0,1]; %西偏北方向45°滤波模板model_fiter_2 = rot90(model_fiter_1);%东偏北方向45°滤波模板model_fiter_3 = [0,1,0;0,1,0;0,1,0]; %南北方向滤波模板model_fiter_4 = rot90(model_fiter_3);%东西方向滤波模板image_fiter_1 = ~im2bw(uint8(conv2(img_gray,model_fiter_1)));image_fiter_2 = ~im2bw(uint8(conv2(img_gray,model_fiter_2)));image_fiter_3 = ~im2bw(uint8(conv2(img_gray,model_fiter_3)));image_fiter_4 = ~im2bw(uint8(conv2(img_gray,model_fiter_4)));%% 定义颜色fill_red(:,:,1) = ones(size(image_fiter_1))*255;fill_red(:,:,2) = ones(size(image_fiter_1))*0;fill_red(:,:,3) = ones(size(image_fiter_1))*0; %红色fill_blue(:,:,1) = ones(size(image_fiter_1))*0;fill_blue(:,:,2) = ones(size(image_fiter_1))*0;fill_blue(:,:,3) = ones(size(image_fiter_1))*255; %蓝色fill_green(:,:,1) = ones(size(image_fiter_1))*0;fill_green(:,:,2) = ones(size(image_fiter_1))*255;fill_green(:,:,3) = ones(size(image_fiter_1))*0; %绿色fill_white(:,:,1) = ones(size(image_fiter_1))*255;fill_white(:,:,2) = ones(size(image_fiter_1))*255;fill_white(:,:,3) = ones(size(image_fiter_1))*255; %白色%% 给每个部分上色for i=1:3 image_fill_1(:,:,i) = image_fiter_1.*fill_red(:,:,i); image_fill_2(:,:,i) = image_fiter_2.*fill_green(:,:,i); image_fill_3(:,:,i) = image_fiter_3.*fill_blue(:,:,i); image_fill_4(:,:,i) = image_fiter_4.*fill_white(:,:,i);end%% 输入最终的图像image_color = image_fill_1+image_fill_2+image_fill_3+image_fill_4;figure(2);imshow(image_color);
5以上为时域方向滤波的形式,下面讲一下有关该图像在频率的滤波
下图为原始图像的频谱图:有关频谱的计算方法主要分为两部分
1.对原始图像进行傅里叶变换
2.对傅里叶变换的结果取其绝对值(幅值),然后在进行归一化操作
从改图可以看出该图像的频率主要集中在四个方向,所以想到可以再四个方向添加频域滤波器进行滤波
- matlab实现不同方向颜色更改
- Matlab-----更改Matlab图中颜色
- 边缘方向直方图matlab实现
- matlab里作图使用不同的颜色
- matlab里作图使用不同的颜色
- matlab里作图使用不同的颜色
- Android 2.1实现屏幕不同方向旋转
- HOG方向梯度直方图matlab实现
- ios给按钮图片根据不同的主题更改颜色
- 实现不同字体颜色的TextView
- 动态更改屏幕方向
- Android TextView 实现文字大小不同和文字颜色不同
- Android TextView 实现文字大小不同和文字颜色不同
- Sliding Drawer不同方向实现抽屉滑动效果
- Office中如何实现公式颜色的更改?
- 网页实现鼠标经过文字后更改颜色
- 使用HTML5 select标签来实现更改网页背景颜色
- 实现咕咚地图路径颜色根据速度不同而颜色不同
- 查看DB2常用数据库字典表
- eclipse 注释与取消注释
- Android 图片局部放大效果
- Photon 官方 LiteLobby类Lite Lobby Concepts
- dojo切面编程(dojo/aspect模块)
- matlab实现不同方向颜色更改
- ASP.Net MVC3连接SAP实践
- android 悬浮窗显示内存
- vc6读取mbr源码
- Android 颜色选择器
- Cron 表达式详解和案例
- 第四周C++上机报告(时间类)
- win7登陆界面隐藏Guest用户名
- git的优点