MATLAB图像处理基本操作(1)

    科技2022-07-11  80

    matlib软件巨大,没有安装 找了几个在线网址

    http://www.compileonline.com/execute_matlab_online.php

    https://octave-online.net/

    从文件读取图像

    a)读取图像文件

    要读取图像文件,请使用imread函数并指定文件名。 本示例读取一个名为peppers.png的图像,并将其存储在名为a的数组中:a = imread('peppers.png');

     b)显示图像,imshow函数

    imshow(a);  %显示图像

    一个可用于显示图像的功能是imagesc。    imagesc(a);  %将比例数组缩放到整个范围[0,255]并显示它调用imshow后,我们可以通过键入以下内容来找到鼠标位置的像素值:impixelinfo

    a=imread('4.jpg');%读取图片 imshow(a);%显示图片 impixelinfo;%显示鼠标该点的像素 imagesc(a);%显示图片有坐标轴 imageinfo('4.jpg');%显示图片信息 s = size(a);%显示图片大小

    获取任意图像位置的像素值

    根据坐标获取像素值 P=impixel(im,r,c) r:行坐标 c:列坐标 P:返回的RGB值

    b=imread('peppers.png'); r=[40 60 80]; c=[100 120 140]; figure; imshow(b); p = impixel(b,r,c)

     

    b=imread('peppers.png') figure; imshow(b); h=impixelinfo;%impixelinfo能够在当前绘图窗口(figure)中显示绘制图像的像素信息 set(h,'position',[10 10 200 50]);%显示框

    c)查找图像大小

    可以通过输入以下内容来找到图像大小:s = size  (a)然后,s(1)将以像素为单位存储图像高度,s(2)将存储图像宽度。    或者,我们可以键入:[H,W,〜] = size(a)然后,H是图像高度,W是图像宽度

    d)有关图像文件的信息

    MATLAB函数imageinfo显示有关图像文件的信息,例如    imageinfo('peppers.png');

    访问图像像素

    a)图像结构

    要检查图像数据如何存储在MATLAB工作区中,请输入whos a。

    要获得彩色图像的红色分量请键入;

    red_component = a(:,:,1);%获得彩色图像的红色分量 green_component = a(:,:,2);%获得彩色图像的绿色分量 blue_component = a(:,:,3);%获得彩色图像的蓝色分量

    要显示图像的各个颜色分量,请键入

    a=imread('4.jpg'); imshow(a(:,:,1));%显示红色分量 imshow(a(:,:,2)); %显示绿色分量 imshow(a(:,:,3)); %显示蓝色成分

    b)读取像素值

    每个彩色像素都有三个用于红色,绿色和蓝色的值。 对于图像阵列a,第r行和第c列的图像像素的颜色值存储在a(r,c,:)。例如,第4行和第5列的图像像素的颜色值是a(4,5  ,:)

    c)更改像素值要将第4行和第5列的图像像素更改为颜色“红色”(红色= 255,绿色= 0,蓝色= 0),请输入

     a(4, 5, 1) = 255; a(4, 5, 2) = 0; a(4, 5, 3) = 0;

    To change all pixels in row 20 to color ‘yellow’ (red = 255, green = 255, blue = 0), type

    a(20, :, 1) = 255; a(20, :, 2) = 255; a(20, :, 3) = 0;

    d)将颜色转换为灰度图像

    可以使用MATLAB函数rgb2gray获得彩色图像的灰度版本:gray_image = rgb2gray(a);

    gray_image = rgb2gray(a); imshow(gray_image);

    e)对图像执行算术运算

    为了节省内存,MATLAB将图像数据存储为uint8(无符号的8位整数)。 无法对此数据类型执行精确的算术运算(加,减,乘,除)。 因此,要对图像执行算术运算,我们需要使用以下步骤。

    使用功能double将图像转换为double数据类型:

    a_double = double(a); 

    对新图像执行算术运算

    a_double = a_double * 2; % scale pixel value by 2 

    使用函数uint8将新图像转换为uint8数据类型:

    a_uint8 = uint8(a_double); %显示或保存uint8图像

    显示或保存uint8图像

    imshow(a_uint8);

    将图像写入文件

    a)要将图像保存到文件,请使用功能imwrite。 该函数的语法为

    imwrite(A,filename,fmt),其中

    A是存储图像数据的数组,

    filename是输出文件名的字符串,fmt是指定图像文件格式的字符串, 例如“ BMP”和“ JPG”。

      例如,要以Windows BMP格式将gray_image保存到文件“ my_image.bmp”,请键入

    imwrite(gray_image, ‘my_image.bmp’, ‘BMP’);

    要以Windows JPG格式将gray_image保存到文件“ my_image.jpg”,请键入

    imwrite(gray_image, ‘my_image.jpg’, ‘JPG’); 使用成像程序查看输出图像,以确认文件已正确保存。

    2.5图像处理

    示例我们将尝试使用MATLAB程序将数字照片转换为类似绘画的图像。 执行以下步骤。    检查MATLAB程序“ cartoon.m”是否在当前目录中。    读取图片文件“ background.bmp”,并将其存储在变量A中。    调用功能卡通以产生输出图像。    C =卡通(A);  使用功能子图并排显示图像A和C。

     

    Processed: 0.011, SQL: 8