2019-04-24 15:42:22 y1016354741 阅读数 111

欢迎关注微信公众号【电子物语】,后台回复【数字图像处理】获取全文和代码

在这里插入图片描述

实验一 图象显示

1. 目的

掌握在计算机上显示图象的方法

2. 实验内容

  1. 熟悉参考程序DISP.c,熟悉C语言。
  2. 输入图象显示源程序DISP.c,建立C语言程序调试环境。
  3. 在计算机屏幕上显示指定的图象A2,B2。

3. 实验效果

Code Click Here
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验二 图像的二维傅立叶变换

1. 目的

掌握在计算机上进行二维傅立叶变换的编程方法以及显示变换图象的方法

2. 实验内容

  1. 熟悉参考程序FFT.c。
  2. 输入图象源程序FFT.c,进行C语言程序调试。实现内容:在128128的黑色图像矩阵中心建立4444的白色矩阵图像点阵,并对该图像进行二维傅里叶变换,将原始图像及傅里叶频谱图都显示于屏幕上。

3. 实验效果

Code Click Here

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验三 图像的增强

1. 目的

掌握在计算机上进行线性增强、直方图均衡化的方法

2. 实验内容

  1. 编写线性化图像增强C语言程序及相应的显示程序。具体要求如图所示,其中分段线性变换函数的a=64,b=195,c=32。(灰度变化范围0——255.)
    在这里插入图片描述
  2. 对指定图象A2或B2进行线性增强,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。
  3. 对1)中的a、b、c三个参数进行修改(改变其对比度,亮度),改变分段线性变换函数,将增强后的图象显示于屏幕上。
  4. 对指定图象A2或B2进行图像灰度的反置(反转)变换,将原始图象及增强后的图象都显示于屏幕上。
  5. 编写直方图均衡化的C语言程序及相应的显示程序。
  6. 对指定图象A2或B2进行直方图均衡化,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果

3. 实验效果

Code Click Here

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验四 图像的增强

1. 目的

掌握在计算机上进行进行图象平滑、图象锐化的方法

2. 实验内容

  1. 对指定图象A2或B2采用3×3如下四个模板分别进行四点平滑、八点平滑、五点平滑、九点平滑,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。
    在这里插入图片描述
  2. 对指定图象A2或B2用下面两个3×3加权模板进行平滑,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。
    在这里插入图片描述
  3. 对指定图象A2或B2用5×5模板进行平滑,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。
  4. 对指定图象A2或B2用3×3模板进行中值滤波增强,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。与采用均值滤波法的处理结果进行比较。
  5. 对指定图象A2或B2进行简单锐化(简单梯度算法、ROBERT算子),将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。
  6. 对指定图象A2或B2分别使用如下算子进行拉普拉斯算子增强,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。与简单锐化的处理结果进行比较。
    在这里插入图片描述

3. 实验效果

Code Click Here
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验五 图像的二值化

1. 目的

掌握在计算机上进行进行图象二值化的方法

2. 实验内容

  1. 对指定图象进行直方图法二值化处理(以指定图像灰阶的平均值作为阈值),将原始图象及二值化后的图象都显示于屏幕上,查看图像分割的效果
  2. 对指定图象进行微分直方图法二值化处理,将原始图象及二值化后的图象都显示于屏幕上,查看图像分割的效果,并与2的结果进行比较。

3. 实验效果

Code Click Here

在这里插入图片描述
在这里插入图片描述

2020-02-19 09:37:58 qq_43246110 阅读数 4

1. 实验目的

  1. 熟练掌握彩色图像的读取、显示与格式转化。
  2. 理解彩色空间的概念,掌握彩色空间的转换过程。
  3. 掌握图像彩色变换基本过程。
  4. 掌握彩色图像处理的基本过程。

2. 实验流程

2.1 彩色图像基本操作

在这里插入图片描述

2.2 伪彩色处理

在这里插入图片描述

2.3 彩色图像平滑滤波

在这里插入图片描述

2.4 RGB转HSI

在这里插入图片描述

3. 实验代码

3.1 彩色图像读取、显示与格式转换

%% 彩色图像读取、显示与格式转换
clear,clc,close ALL;
tic
% 读取索引图像
[indS_1,map] = imread('task1/IndexColor.tif');
gray_image1 = ind2gray(indS_1,map);%索引图转换为灰度图
rgb_1 = ind2rgb(indS_1,map);%索引图转换为rgb
figure('Name','对索引图像转换','NumberTitle','off');
subplot(131),imshow(indS_1,map),title('索引图像');
subplot(132),imshow(gray_image1),title('索引图转换为灰度图');
subplot(133),imshow(rgb_1),title('索引图转换为rgb');
% imwrite导出图像
imwrite(indS_1,map,'索引图.jpg')
imwrite(gray_image1,'索引图转换为灰度图.png');
imwrite(rgb_1,'索引图转换为rgb.tif');
% 读取RGB图像
rgb_2 = imread('task1/fullColor.tif');%读取rgb图像
gray_image2 = rgb2gray(rgb_2);%rgb图像转换为灰度图
[indS_2,map] = rgb2ind(rgb_2,256,'nodither');%rgb图像转换为索引图
figure('Name','对RGB图像转换','NumberTitle','off');
subplot(231),imshow(rgb_2),title('rgb图像');
subplot(232),imshow(gray_image2),title('rgb图像转换为灰度图');
subplot(233),imshow(indS_2,map),title('rgb图像转换为索引图');
% 显示颜色分量
fR = rgb_2(:, :, 1);
fG = rgb_2(:, :, 2);
fB = rgb_2(:, :, 3);
subplot(234),imshow(fR),title('rgb图像R分量');
subplot(235),imshow(fG),title('rgb图像G分量');
subplot(236),imshow(fB),title('rgb图像B分量');
toc

3.2 伪彩色变换

%% 伪彩色变换
clear,clc,close ALL;
tic
gray_1 = imread('task2/Fig0621a.tif');
[m,n] = size(gray_1);
gray_1 = uint8(gray_1);
Pout_1 = zeros(m,n,3,'uint8');
color1 = [255,0,0];
color2 = [255,100,0];
color3 = [255,200,0];
color4 = [255,255,0];
color5 = [50,175,50];
color6 = [0,175,250];
color7 = [0,150,250];
color8 = [0,0,255];
%伪彩色的分类范围,分8for i = 1:m
    for j = 1:n
        if gray_1(i,j)>=240 && gray_1(i,j) <= 255
            Pout_1(i,j,1) = color1(1);
            Pout_1(i,j,2) = color1(2);
            Pout_1(i,j,3) = color1(3);
        elseif gray_1(i,j)>=210 && gray_1(i,j) <= 240
            Pout_1(i,j,1) = color2(1);
            Pout_1(i,j,2) = color2(2);
            Pout_1(i,j,3) = color2(3);
        elseif gray_1(i,j)>=190 && gray_1(i,j) <= 210
             Pout_1(i,j,1) = color3(1);
             Pout_1(i,j,2) = color3(2);
             Pout_1(i,j,3) = color3(3);
        elseif gray_1(i,j)>=170 && gray_1(i,j) <= 190
            Pout_1(i,j,1) = color4(1);
            Pout_1(i,j,2) = color4(2);
            Pout_1(i,j,3) = color4(3);
        elseif gray_1(i,j)>=150 && gray_1(i,j) <= 170
            Pout_1(i,j,1) = color5(1);
            Pout_1(i,j,2) = color5(2);
            Pout_1(i,j,3) = color5(3);
        elseif gray_1(i,j)>=120 && gray_1(i,j) <= 150
            Pout_1(i,j,1) = color6(1);
            Pout_1(i,j,2) = color6(2);
            Pout_1(i,j,3) = color6(3);
        elseif gray_1(i,j)>=80 && gray_1(i,j) <= 120
            Pout_1(i,j,1) = color7(1);
            Pout_1(i,j,2) = color7(2);
            Pout_1(i,j,3) = color7(3);
        elseif gray_1(i,j)>=0 && gray_1(i,j) <= 80
            Pout_1(i,j,1) = color8(1);
            Pout_1(i,j,2) = color8(2);
            Pout_1(i,j,3) = color8(3);
        end
    end
end  
figure;
subplot(121),imshow(gray_1),title('原图');
subplot(122),imshow(Pout_1),title('伪彩色变换');
toc

3.3 彩色图像平滑滤波

%% 彩色图像平滑滤波
clear,clc,close ALL;
tic
F = imread('task3/Fig0638a_noise.tif');
fR = F(:,:,1);
fG = F(:,:,2);
fB = F(:,:,3);
%设置滤波的大小,RGB分别滤波再拼接
w1 = fspecial('average',3);
w2 = fspecial('average',10);
fR1_filtered = imfilter(fR,w1,'replicate');%分通道平滑滤波
fG1_filtered = imfilter(fG,w1,'replicate');
fB1_filtered = imfilter(fB,w1,'replicate');
fR2_filtered = imfilter(fR,w2,'replicate');
fG2_filtered = imfilter(fG,w2,'replicate');
fB2_filtered = imfilter(fB,w2,'replicate');
F1_filtered = cat(3,fR1_filtered,fG1_filtered,fB1_filtered);
F2_filtered = cat(3,fR2_filtered,fG2_filtered,fB2_filtered);
figure;
subplot(131),imshow(F),title('原图');
subplot(132),imshow(F1_filtered),title('滤波器大小为5');
subplot(133),imshow(F2_filtered),title('滤波器大小为10');
toc

3.4 RGB颜色空间到HSI的转换

%% RGB颜色空间到HSI的转换
clear,clc,close ALL;
tic
I1 = imread('task4/fullColor.tif');
% 获取图像大小
[m,n,c] = size(I1);
I2 = double(I1);
H = zeros(m,n);
S = zeros(m,n);
I = zeros(m,n);
r = I2(:,:,1);
g = I2(:,:,2);
b = I2(:,:,3);
% 计算HSI分量
for i = 1:m
    for j = 1:n
      R = r(i,j);
      G = g(i,j);
      B = b(i,j);
      angle = acos(0.5*((R-G)+(R-B))/sqrt((R-G)^2)+(R-B)*(G-B)+eps);
      if B <= G
          H(i,j) = angle;
      else
          H(i,j) = 360 - angle;
      end
      min1 = min(min(R,G),B);
      S(i,j) = 1 - 3*min1/(R+G+B);
      I(i,j) = (R+G+B)/3;
    end
end
figure('Name','RGB转换为HSI','NumberTitle','off');
subplot(221),imshow(I1),title('原图');
subplot(222),imshow(H,[]),title('H');
subplot(223),imshow(S,[]),title('S');
subplot(224),imshow(I,[]),title('I');
toc

4. 实验结果及分析

4.1 彩色图像读取、显示与格式转换

1、读取索引图:
在这里插入图片描述

2、读取RGB图像:
在这里插入图片描述

3、结果分析:
由图3.1,共有图3.1(a)—图3.1©三幅图。其中图3.1(a)为读入原图的索引图象。图3.1 (b)和©分别为对原图做转换的灰度图像和RGB图像。
通过普通的肉眼观察,基本不能辨别索引图像和真彩色图像的区别。
由图3.2,共有图3.2(a)—图3.2(f)三幅图。其中图3.2(a)为读入原图的RGB图象。图3.2(b)和©分别为对原图做转换的灰度图像和索引图像。此外,还通过RGB三通道分离,展示R,G,B的单色图像。
单色图中,也满足[0,255]的灰度变化。故很明显地可以从上图中灰度看出,图3.2(d)的值最高,也就反应出了图像中的“草莓”是红色的事实;此外图3.2(e)中“绿叶”部分很亮,也与事实相符;三幅图中的“桌子”部分都很亮,而原图中的桌子就是白色的,因此也显示出了三色组成的白色,故在每个分量中值都很大。

4.2 伪彩色变换

1、实验结果
在这里插入图片描述

2、结果分析
由图3.3(a)看出,原图为焊缝的一张灰度图片。可见中心处亮度较高,具体的识别点不是很清楚,因此可对此图像进行一个伪彩色处理。本实验中主要对原图进行灰度分级,采用灰度分层的方法进行伪彩色变换。
由图3.3(b)可看出,在8个灰度级情况下,可分析整体效果较不错,中心处的焊缝是全图像中最亮部分,在彩色图像中显示为最高的红色,较为突出,可看出伪彩色处理效果较好。

4.3 彩色图像滤波处理

1、实验结果
在这里插入图片描述

2、结果分析
本实验中,共对三幅图像进行RGB分频道滤波处理,图3.4(b),©分别为原图经过大小为5和大小为10的均值滤波器处理过后的结果图。
根据图3.4(b),看出整体滤波效果较为不错,基本噪声可去除。
对比图3.4©,较图3.4(b)程度更深,但处理的视觉效果并不是很好,模糊程度太高,没有达到最想要的滤波效果。
为了体现在本滤波器下的最优模板选择,本实验进行了滤波器大小的判断和对比,如下图:
可看到效果,当滤波器大小为3时,整体效果较大小为5时更好一些,但同时滤波的程度和效果也会有一定程度的下降,这也就说明了图像处理中的选择,以及对结果的要求,有时并不会产生一个十全十美的方案,需要留下更重要的方面。
在这里插入图片描述

4.4 RGB转HSI

1、实验效果
在这里插入图片描述

2、结果分析
图3.6(a)即为原图,而图3.6(b),©,(d)为经过HIS转换后的三幅分量图。
由图3.6(a),可知色调图将冷暖色调分开,“红色”的草莓部分非常明亮,但周围的环境却非常的暗。
由图3.6(b),饱和度表示了颜色的纯度,纯光谱色是完全饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就会越鲜艳,反之亦然。
由图3.6©,亮度对应了成像亮度和图像灰度,是颜色的明亮程度。

2018-11-26 15:58:00 Liukx940818 阅读数 138

为了争取提前毕业,最近需要做大量图像处理的实验,改代码、调参、存结果,由于专注于实验,所以丝毫没顾及代码质量,又懒得重构,导致今天写的代码明天就忘了什么意思,加上实验室同学可能将来都或多或少需要做图像处理实验,所以不如借此机会,花几周时间把「图像处理网站」搭好,让有需要的同学能方便地做图像处理实验。

自定义处理流示意

网站的前端使用React进行开发,这里要特别感谢我的小伙伴熊鑫同学,愿意花费业余时间帮助我完成前端开发工作。

网站的服务器端使用python的Flask框架,也是第一次用,感谢我的小伙伴奇奇,告诉我这么轻量又好使的框架。

网站的数据库用mongodb,因为比较方便,也暂时没什么数据,专注于做图像处理实验,因此不会有用户敏感数据。

准备陆续记录下来建站的点滴,希望能与一起在路上的人分享交流,共同完善平台,也希望这个平台能帮到有需要的同学。

目前平台实现的功能有:
(1)自定义处理流程,可以叠加处理流中的效果,调参方便
(2)撤销返回处理操作
(3)保存处理流和处理后图片
现有功能示意

服务器端

前端

前端仓库地址:
https://gitee.com/happysunrise/lab822.git

2015-04-07 16:29:28 iplab_gdufs 阅读数 1089

       “广外图像处理实验室”隶属于广东外语外贸大学信息学院“智慧健康与可视计算”团队,由信息学院计算机系龚永义教授发起建立,实验室指导老师包括吴贺丰博士、广外云山讲座教授李祺博士(美国西肯塔基大学),致力于前沿的图形图像处理、计算机视觉与模式识别技术研究。

龚永义教授主页:http://www.scholat.com/~yongyigong

吴贺丰博士主页:http://www.scholat.com/~wuhefeng

李祺博士主页:   http://people.wku.edu/qi.li/

没有更多推荐了,返回首页