文档详情

数字图像的基本运算2.docx

发布:2018-01-16约3.32千字共9页下载文档
文本预览下载声明
数字图像的基本运算实验目的与要求熟悉和掌握Matlab能处理的图像格式。掌握在Matlab中图像的读取。掌握数字图像的增强技术能编程实现数字图像的各种基本运算和增强技术。实验内容选用一幅灰度图像,运用图像的点运算(对数变换、gamma变换等)对选定的图像进行增强处理。再选用一幅彩色图像,运用图像的这些点运算,对彩色图像进行增强处理。程序:%对数变换clcclearimg = imread(Zhanglala1.bmp);figure;imshow(img);img = im2double(img);% 转换为double类型,使所有点在0-1之间%公式:s = clog(1 + r),c为常数,r = 0c = 2;if ndims(img) == 3 %如果是彩色图像 [m, n, l] = size(img); for i = 1 : m for j = 1 : n for k = 1 : l img(i, j, k) = c * log(img(i, j, k) + 1); end end endelse [m, n] = size(img); for i = 1 : m for j = 1 : n img(i, j) = c * log(img(i, j) + 1); end endendfigure; imshow(img);-------------------------------------------------------------------------------------------------------%gamma变换clcclearimg = imread(Zhanglala.bmp);img = im2double(img);figure; imshow(img);%公式:s=cr^a, (c, a 0)c = 1.5;alpha = 1.1;if ndims(img) == 3 %ndims(a)表示矩阵a的维数。 [m, n, l] = size(img); for i = 1 : m for j = 1 : n for k = 1 : l img(i, j, k) = c * (img(i, j, k) ^ alpha); end end endelse [m, n] = size(img); for i = 1 : m for j = 1 : n img(i, j) = c * (img(i, j) ^ alpha); end endendfigure; imshow(img);假如图像的变换公式为选择合适的a, b, c的值,编程实现该变换对图像的处理。比较不同a, b, c的取值对图像的影响。能否通过计算图像的灰度分布等来自动确定a, b, c的值?如果能,请设计a,b,c值的计算方程。若图像的变换形式为呢?程序:clcclearimg = imread(Zhanglala.bmp);figure;imshow(img);img = im2double(img);% 转换为double类型,使所有点在0-1之间%公式:s = clog(1 + r),c为常数,r = 0a = 0;b = 0.5;c = 2.7183;if ndims(img) == 3 %如果是彩色图像 [m, n, l] = size(img); for i = 1 : m for j = 1 : n for k = 1 : l img(i, j, k) = a + log(img(i, j, k) + 1) / (b * log(c));%matlab的log默认以e为底 end end endelse [m, n] = size(img); for i = 1 : m for j = 1 : n img(i, j) = a + log(img(i, j) + 1) / (b * log(c)); end endendfigure; imshow(img);----------------------------------------------
显示全部
相似文档