matlab学习笔记(五)---空域变换增强-直接灰度调整

news/2024/7/7 13:13:57

1、像素选择

(1)函数pixval(matlab7.8中此函数已过时),改用impixelinfo,用来测试像素的值。

   imshow canoe.tif;
   impixelinfo

效果图如下:


(2)函数impixel,用来得到像素的值。

语法格式:

   [C,R,P]=impixel(X,MAP)

其中X表示输入图像,MAP表示索引图像的调色板(仅当图像为索引图像时才有此参数)。C表示指定像素的颜色,R和P表示像素的坐标。

   RGB=imread('canoe.tif');
   c=[12 146 410];
   r=[104 156 129]; 
   pixels=impixel(RGB,c,r)
   pixels =
      254   254   254
      252   252   252
      NaN   NaN   NaN



2、强度描述图

函数improfile,用来计算图像中一条线段或多条线段强度值。

语法格式:

  C=improfile(I,xi,yi);

其中I为输入图像,xi和yi是两个向量,用来指定线段的端点,C是线段上个点的灰度或颜色。对于单独的线段,improfile函数会在二维视图中绘制点的灰度值;对于多条线段,improfile函数会在三维视图中绘制灰度值。

用improfile函数显示两条线段的灰度值。

   I=imread('rice.png<span style="font-family: Arial, Helvetica, sans-serif;">');</span>
   subplot(121),imshow(I);
   x=[35 338 346 103];
   y=[253 250 17 148];
   subplot(122),improfile(I,x,y),grid on;
效果图如下:




3、图像轮廓图

函数imcontour用来显示灰度图像中数据的轮廓图

   I=imread('rice.png');
   subplot(121),imshow(I);
   subplot(122),imcontour(I);

效果图如下:




4、直方图

灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数。

函数imhist:显示图像的直方图

格式:

   imhist(I,n);

   imhist(X,map);

   I=imread('pout.tif');
   subplot(121),imshow(I);
   title('原图像'),axis square;
   subplot(122),imhist(I);
   title('图像的直方图'),axis square;
效果如下:


  


5、对比度扩展以增强图像

函数imadjust,将图像的灰度值映像为一个新的数值范围。

语法格式:略

   I=imread('rice.png');
   J=imadjust(I,[0.15 0.9],[0 1]);
   subplot(121),imshow(I);
   subplot(122),imhist(J);
效果图如下:



通过对数变换来改善图像质量

   I=imread('pout.tif');
   subplot(121),imshow(I);
   I=double(I);
   J=log(I+1);
   subplot(122),imshow(mat2gray(J));
效果图如下:











http://www.niftyadmin.cn/n/4464353.html

相关文章

带USB下载功能的uboot,支持mini2440(未验证)

带USB下载功能的uboot&#xff0c;支持mini2440(百问网原创) 文章发表于&#xff1a;2008-11-17 15:34 能做出这个uboot的人也就是论坛的坛主 thisway.diy&#xff0c;《嵌入式linux应用开发板完全手册》的作者韦东山&#xff0c;人称南山大哥。感谢他的开源代码&#xff0c;我…

matlab学习笔记(六)---空域变换增强-直方图处理

1、直方图均衡化 函数histeq&#xff0c;实现对输入图像的直方图均衡化 语法格式&#xff1a;略 I imread(tire.tif);J histeq(I);subplot(221),imshow(I),title(原始图像);subplot(222),imshow(J),title(直方图均衡图像);subplot(223),imhist(I),title(原始图像直方图);su…

kthread_create与kernel_thread的区别

kernel thread可以用kernel_thread创建&#xff0c;但是在执行函数里面必须用daemonize释放资源并挂到init下&#xff0c;还需要用completion等待这一过程的完成。 kthread_create是比较正牌的创建函数&#xff0c;这个不必要调用daemonize&#xff0c;用这个创建的kernel thre…

matlab学习笔记(七)---空域变换增强-图像间的代数运算

1、图像相加运算 1.1增强图像的亮度 I imread(rice.png);J imadd(I,50);subplot(1,2,1), imshow(I),title(原图像);subplot(1,2,2), imshow(J), title(增强图像的亮度);效果图如下&#xff1a;1.2图像叠加 I imread(rice.png);J imread(cameraman.tif);K imadd(I,J,uint1…

matlab学习笔记(八)---空域滤波增强

1、平滑滤波器 1.1线性平滑滤波器 1.1.1给图像加入椒盐噪声 Iimread(eight.tif); Jimnoise(I,salt & pepper,0.02); subplot(121),imshow(I),title(原始图像); subplot(122),imshow(J),title(加入椒盐噪声的图像);效果图如下&#xff1a;1.1.2对一个图像进行不同大小模板…

va_start va_end

C语言中可变参数的用法 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf() 这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是 可变的,例…

添加系统调用 http://docs.huihoo.com/joyfire.net/6-1.html

第一步:1.找到linux 内核代码所在地,一般在你的系统这个位置(你下载代码放其他地方我不反对) /usr/src/linux/ 但是也可能是这个位置 /usr/src/linux-2.4/或者其他 找到后cd /usr/src/linux*/ 转到该目录下. linux*表示代码所在的文件夹2.修改内核代码 a.添加源文件 假设新加…

matlab学习笔记(九)---频域增强

1、低通滤波 1.1对图像eight.tif加入椒盐噪声后&#xff0c;实现Butterworth低通滤波。 clear; I1imread(eight.tif); subplot(221),imshow(I1),title(原始图像); I2imnoise(I1,salt & pepper); %加入椒盐噪声 subplot(222),imshow(I2),title(噪声图像); fdouble(I2)…