MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)

这篇具有很好参考价值的文章主要介绍了MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

1、熟悉并掌握MATLAB工具的使用; 
2、实现图像的读取、显示、存储、平移、镜像、放大、缩小及旋转操作;
3、掌握常用的插值方法,并了解其优缺点。

二、实验环境

Matlab 2020B

三、实验内容

题目

1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显示RGB图像和灰度图像,注上文字标题,并将结果以文件形式存到磁盘上。
2、对图像执行平移、镜像(水平镜像、垂直镜像)放大、缩小及旋转操作,其中放大、旋转操作分别采用最近邻插值及双线性插值方法实现,要求根据算法自己编写代码实现,并分析两种插值方法的优缺点。

相关知识

在matlab环境中,调用imread()函数可读入图像,默认的存储方式为的矩阵,分RGB三个通道。值类型为uint8,即取值范围为0~255。

rgb2gray()函数将RGB三个通道存储的图像消除色调和饱和度,保留亮度,将RGB图像转为灰度图。
im2bw(I,level)函数基于阈值将图像转化为二值图像。输入图像可以为RGB图像,也可以为灰度图像。level参数为阈值取值范围为0到1之间的小数,将大于阈值的像素点变为白色(1),其他像素点变为黑色(0)。

图像平移时,设某个像素点坐标为 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),经过平移 ( t x , t y ) (t_x,t_y) (tx,ty),达到坐标为 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)。该关系可记为: { x 1 = x 0 + t x y 1 = y 0 + t y \begin{cases}x_1=x_0+t_x\\y_1=y_0+t_y\end{cases} {x1=x0+txy1=y0+ty,用矩阵形式可以记作: ( x 1 y 1 1 ) = ( x 0 y 0 1 ) ( 1 0 0 0 1 0 t x t y 1 ) \begin{pmatrix}x_1&y_1&1\end{pmatrix}=\begin{pmatrix}x_0&y_0&1\end{pmatrix}\begin{pmatrix}1&0&0\\0&1&0\\t_x&t_y&1\end{pmatrix} (x1y11)=(x0y01) 10tx01ty001 。在实现时,记图像的高为 h h h,宽为 w w w,需要判断 x 1 , y 1 x_1,y_1 x1,y1 h , w h,w h,w的大小关系,不能发生下标越界。

图像水平镜像时,记图像宽为 w w w。则原像素点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)变为 ( w − x 0 , y 0 ) (w-x_0,y_0) (wx0,y0),即: { x 1 = w − x 0 y 1 = y 0 \begin{cases}x_1=w-x_0\\y_1=y_0\end{cases} {x1=wx0y1=y0。用矩阵形式记作: { x 1 = x 0 + t x y 1 = y 0 + t y \begin{cases}x_1=x_0+t_x\\y_1=y_0+t_y\end{cases} {x1=x0+txy1=y0+ty,用矩阵形式可以记作: ( x 1 y 1 1 ) = ( x 0 y 0 1 ) ( − 1 0 0 0 1 0 w 0 1 ) \begin{pmatrix}x_1&y_1&1\end{pmatrix}=\begin{pmatrix}x_0&y_0&1\end{pmatrix}\begin{pmatrix}-1&0&0\\0&1&0\\w&0&1\end{pmatrix} (x1y11)=(x0y01) 10w010001

图像垂直镜像时,记图像高为 h h h。则原像素点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)变为 ( x 0 , h − y 0 ) (x_0,h-y_0) (x0,hy0),即: { x 1 = x 0 y 1 = h − y 0 \begin{cases}x_1=x_0\\y_1=h-y_0\end{cases} {x1=x0y1=hy0。用矩阵形式记作: ( x 1 y 1 1 ) = ( x 0 y 0 1 ) ( 1 0 0 0 − 1 0 0 h 1 ) \begin{pmatrix}x_1&y_1&1\end{pmatrix}=\begin{pmatrix}x_0&y_0&1\end{pmatrix}\begin{pmatrix}1&0&0\\0&-1&0\\0&h&1\end{pmatrix} (x1y11)=(x0y01) 10001h001

图像放大分为两个步骤:1.创建新的像素点位。2.给新的像素点位的对应位置赋值。

在使用最近邻插值法时,直接用原图中最近的像素点位给新图赋值。

在使用双线性插值法时,记原图大小 m ∗ n m*n mn,新图大小 a ∗ b a*b ab,则新图的坐标 ( x 0 ′ , y 0 ′ ) (x_0',y_0') (x0,y0)对应原图 ( x 0 , y 0 ) = ( x 0 ′ ∗ m / a , y 0 ′ ∗ n / b ) (x_0,y_0)=(x_0'*m/a,y_0'*n/b) (x0,y0)=(x0m/a,y0n/b)。找到与 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)最近的四个整数点位记作 ( x 1 , y 1 ) , ( x 1 , y 2 ) , ( x 2 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_1,y_2),(x_2,y_1),(x_2,y_2) (x1,y1),(x1,y2),(x2,y1),(x2,y2),其对应点位上的灰度值记为 P 11 , P 12 , P 21 , P 22 P_{11},P_{12},P_{21},P_{22} P11,P12,P21,P22
( x 0 ′ , y 0 ′ ) (x_0',y_0') (x0,y0)的灰度值为
y 2 − y 0 y 2 − y 1 ( x 2 − x 0 x 2 − x 1 P 11 + x 0 − x 1 x 2 − x 1 P 21 ) + y 0 − y 1 y 2 − y 1 ( x 2 − x 0 x 2 − x 1 P 12 + x 0 − x 1 x 2 − x 1 P 22 ) \frac{y_2-y_0}{y_2-y_1}(\frac{x_2-x_0}{x_2-x_1}P_{11}+\frac{x_0-x_1}{x_2-x_1}P_{21})+\frac{y_0-y_1}{y_2-y_1}(\frac{x_2-x_0}{x_2-x_1}P_{12}+\frac{x_0-x_1}{x_2-x_1}P_{22}) y2y1y2y0(x2x1x2x0P11+x2x1x0x1P21)+y2y1y0y1(x2x1x2x0P12+x2x1x0x1P22)

在实现时,可能需要去掉边框上的像素点值,以防止下标越界等情况。若 ( x 0 , y 0 ) = ( x 0 ′ ∗ m / a , y 0 ′ ∗ n / b ) (x_0,y_0)=(x_0'*m/a,y_0'*n/b) (x0,y0)=(x0m/a,y0n/b)为整数,则直接取该点灰度值赋给 ( x 0 ′ , y 0 ′ ) (x_0',y_0') (x0,y0)而无需进行双线性插值。

图像缩小算法与放大类似,只要新图像大小 a ∗ b a*b ab小于原图像大小 m ∗ n m*n mn即可。

在对图像进行旋转时,为了对图像中心进行旋转,需要先把坐标系平移到中心。记原中心点 ( x ′ , y ′ ) = ( 0 , 0 ) (x',y')=(0,0) (x,y)=(0,0),则变换后的中心点 ( x , y ) (x,y) (x,y)与原中心点关系为 ( x y 1 ) = ( x ′ y ′ 1 ) ( 1 0 0 0 − 1 0 − 0.5 w 0.5 h 1 ) \begin{pmatrix}x&y&1\end{pmatrix}=\begin{pmatrix}x'&y'&1\end{pmatrix}\begin{pmatrix}1&0&0\\0&-1&0\\-0.5w&0.5h&1\end{pmatrix} (xy1)=(xy1) 100.5w010.5h001 .则旋转分为三个步骤:将 x ′ o ′ y x'o'y xoy变成 x o y xoy xoy,将该点顺时针转 α \alpha α度,最后将 x o y xoy xoy变回 x ′ o ′ y ′ x'o'y' xoy。则完整的变换为:
( x y 1 ) = ( x ′ y ′ 1 ) = ( 1 0 0 0 − 1 0 − 0.5 w o l d 0.5 h o l d 1 ) ( cos ⁡ α − sin ⁡ α 0 sin ⁡ α cos ⁡ α 0 0 0 1 ) ( 1 0 0 0 − 1 0 − 0.5 w n e w 0.5 h n e w 1 ) \begin{pmatrix}x&y&1\end{pmatrix}=\begin{pmatrix}x'&y'&1\end{pmatrix}=\begin{pmatrix}1&0&0\\0&-1&0\\-0.5w_{old}&0.5h_{old}&1\end{pmatrix}\begin{pmatrix}\cos\alpha&-\sin\alpha&0\\\sin\alpha&\cos\alpha&0\\0&0&1\end{pmatrix}\begin{pmatrix}1&0&0\\0&-1&0\\-0.5w_{new}&0.5h_{new}&1\end{pmatrix} (xy1)=(xy1)= 100.5wold010.5hold001 cosαsinα0sinαcosα0001 100.5wnew010.5hnew001
由于前后图像大小不一定相等。所以需要进行插值处理,可以使用上文中提到的两种插值算法。新图像宽为 w ′ = ∣ cos ⁡ α ∣ ∗ w + ∣ sin ⁡ α ∣ ∗ h w'=|\cos\alpha|*w+|\sin\alpha|*h w=cosαw+sinαh。新图像的高为 h ′ = ∣ sin ⁡ α ∣ ∗ w + ∣ cos ⁡ α ∣ ∗ h h'=|\sin\alpha|*w+|\cos\alpha|*h h=sinαw+cosαh

部分核心代码

I_0=imread("test.jpg");
I_1=rgb2gray(I_0);
I_2=im2bw(I_0,0.5);
%figure('P1','P2','P3','P4')
title("实验1-1")
subplot(1,3,1);imshow(I_0);title('原图')
subplot(1,3,2);imshow(I_1);title('灰度图')
subplot(1,3,3);imshow(I_2);title('二值化')
savefig("lab1_1.fig")

完成了读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显示RGB图像和灰度图像,注上文字标题,并将结果以文件形式存到磁盘上。

I=imread("test.jpg");
[R,C,color]=size(I);
res=zeros(R,C,color);
for color=1:3
    for i=1:R
        for j=1:C
            newx=i+60;
            newy=j+60;
            if ((newx<=R) && (newy<=C))
                res(newx,newy,color)=I(i,j,color);
            end
        end
    end
end
imshow(uint8(res)) 

完成了对图像的平移操作,对图像向右下平移60个像素。对于每个像素点,先平移,再判断下标是否越界,最后将像素点填入。

I=imread("test.jpg");
[R,C,ch]=size(I);
res=zeros(R,C,ch);
for color=1:3
    for i=1:R
        for j=1:C-1
            res(i,j,color)=I(i,C-j,color);
        end
    end
end
imshow(uint8(res))

完成了对图像的垂直翻转操作。没有使用矩阵运算。

I=imread("test.jpg");
[R,C,ch]=size(I);
res=zeros(R,C,ch);
for color=1:3
    for i=1:R-1
        for j=1:C
            res(i,j,color)=I(R-i,j,color);
        end
    end
end
imshow(uint8(res))

完成了对图像的水平翻转操作。没有使用矩阵运算。

I=imread("test2.jpg");
[h,w,ch]=size(I);
height=1500;
width=1500;
newimg=zeros(height,width);
multh=height/h;
multw=width/w;
for i=1:height
    for j=1:width
        for c=1:3
            oldi=round(i/multh);
            oldj=round(j/multw);
            if (oldi>=1&&oldi<=h&&oldj>=1&&oldj<=w)
                newimg(i,j,c)=I(oldi,oldj,c);
            end
            
         end
    end
end
imshow(uint8(newimg))

完成了对图像的放大/缩小操作。使用最近邻插值法。先把新图中的像素点除以放大倍数映射得到其在原图中的位置,将该位置值四舍五入找到最近邻,直接将最近邻的值填入。

I=imread('test2.jpg');
[m,n,ch]=size(I);
width=100;
height=100;
newimg = uint8(zeros(width,height,3));
% 计算放大/缩小倍数
widthScale = m/width;
heightScale = n/height;  
for ch=1:3
    for x = 1:width - 1
        for y = 1:height - 1 
            xx = x * widthScale;%新图像位置对应原图像位置 
            yy = y * heightScale;%新图像位置对应原图像位置 
            if (xx/double(uint16(xx)) == 1.0) && (yy/double(uint16(yy)) == 1.0)
                newimg(x,y,ch) = I(int16(xx),int16(yy),ch);%若正好对应到整数点,则直接赋值,不插值
            else 
                a = double(uint16(xx));%找整数点
                b = double(uint16(yy));
                if a==0||b==0||a>=m||b>=n%下标不能越界
                    continue;
                end
                x11 = double(I(a,b,ch)); % x11 = I(a,b)
                x12 = double(I(a,b+1,ch)); % x12 = I(a,b+1)
                x21 = double(I(a+1,b,ch)); % x21 =I(a+1,b)
                x22 = double(I(a+1,b+1,ch)); % x22 = I(a+1,b+1)
                newimg(x,y,ch) = uint8( (b+1-yy) * ((xx-a)*x21 + (a+1-xx)*x11) + (yy-b) * ((xx-a)*x22 +(a+1-xx) * x12));
            end
        end
    end
end
imshow(newimg);

完成了对图像的放大/缩小操作。使用双线性插值法。先把新图中的像素点除以放大倍数映射得到其在原图中的位置,如果是整数则直接填入,如果不是整数则找到与其相邻的四个点,按照上文中的公式进行插值,将该值填入。

I=imread("test2.jpg");
angle=30;
[h,w,d]=size(I);
theta=angle/180*pi;
cos_val = cos(theta);
sin_val = sin(theta);
 
w2=round(abs(cos_val)*w+h*abs(sin_val));
h2=round(abs(cos_val)*h+w*abs(sin_val));
img_rotate  = uint8(zeros(h2,w2,3));    %像素是整数
 
 
for x=1:w2
    for y=1:h2
        x0 = uint32(x*cos_val + y*sin_val -0.5*w2*cos_val-0.5*h2*sin_val+0.5*w);%展开矩阵乘法
        y0 = uint32(y*cos_val - x*sin_val +0.5*w2*sin_val-0.5*h2*cos_val+0.5*h);%展开矩阵乘法
        
        x0=round(x0);         %最近邻
        y0=round(y0);         %最近邻
        if x0>=1 && y0>=1&&  x0<=w && y0<=h %检测下标不能越界
            img_rotate(y,x,:) = I(y0,x0,:);
        end
    end
end
imshow(img_rotate)

完成了对图像的旋转操作。对于图像大小会发生变化的情况,使用最近邻插值法处理缩放。同理,按四舍五入方式找到最近邻。

angle=45;                   
I=imread('test2.jpg');     
imshow(I);                   
[h,w,d]=size(I);
theta=angle/180*pi;
M=[cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0;0 0 1];
leftup=[1 1 1]*M;               %新图左上角
rightup=[1 w 1]*M;               %新图右上角
leftdown=[h 1 1]*M;               %新图左下角
rightdown=[h w 1]*M;               %新图右下角
cos_val = cos(theta);
sin_val = sin(theta);
 
w2=round(abs(cos_val)*w+h*abs(sin_val));%新图宽度
h2=round(abs(cos_val)*h+w*abs(sin_val));%新图高度
img_rotate=uint8(zeros(h2,w2,3));
dy=abs(min([leftup(1) rightup(1) leftdown(1) rightdown(1)]));            %取得y方向的负轴超出的偏移量
dx=abs(min([leftup(2) rightup(2) leftdown(2) rightdown(2)]));            %取得x方向的负轴超出的偏移量
 
for i=1-dy:h2-dy
    for j=1-dx:w2-dx
        pix=[i j 1]/M;                                %用变换后图像的点的坐标去寻找原图像点的坐标,
        yy=pix(1)-floor(pix(1));
        xx=pix(2)-floor(pix(2));
        if pix(1)>=1 && pix(2)>=1 && pix(1) <= h && pix(2) <= w
            x11=floor(pix(1));        %四个相邻的点
            y11=floor(pix(2));
            x12=floor(pix(1));
            y12=ceil(pix(2));
            x21=ceil(pix(1));
            y21=floor(pix(2));
            x22=ceil(pix(1));
            y22=ceil(pix(2));
 
            value_leftup=(1-xx)*(1-yy);              %计算临近四个点在双线性插值中的权重
            value_rightup=xx*(1-yy);
            value_leftdown=(1-xx)*yy;
            value_rightdown=xx*yy;
 
            img_rotate(i+dy,j+dx,:)=value_leftup*I(x11,y11,:)+value_rightup*I(x12,y12,:)+ value_leftdown*I(x21,y21,:)+value_rightdown*I(x22,y22,:);
        end
    end
end
 
imshow(uint8(img_rotate))

完成了对图像的旋转操作。对于图像大小会发生变化的情况,使用双线性插值法处理缩放。同理,先找到新图中某点坐标对应原图位置(利用矩阵除法),找到其相邻的四个点位,按照上文中的公式进行插值。

实验结果

MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
对于题目1,完成了对图片的读取、灰度化、二值化操作。还生成了可以被matlab打开的.fig文件。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
对于平移,正确地实现了图像的平移,并且对其余部分补上黑色边框。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
对于左右镜像翻转,正确地实现了图像的左右镜像翻转。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
对于上下镜像翻转,正确地实现了图像的上下镜像翻转。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
成功将图像放大,利用最近邻插值。可以看到,放大的结果存在一定的锯齿与马赛克的现象。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
成功将图像缩小,利用最近邻插值。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
成功将图像放大,利用双线性插值。可以看到,放大的结果比起最近邻插值更为平滑,没有存在严重的锯齿现象。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
成功将图像缩小,利用双线性插值。可以看到,利用双线性插值进行缩小时也没有出现失真现象。
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
利用最近邻插值法与双线性插值法分别对图像进行旋转45°操作,并对其余区域填充为黑色。

分析:两种插值法优缺点

最近邻插值法优点:实现简单,运行速度快。缺点:在放大图像时可能出现锯齿现象,图像中一些曲线的边缘不平滑。在放大后缩小回去还会出现一定的失真现象,使图像看起来变得模糊了,像马赛克。
双线性插值法优点:一定程度上缓解了最近邻插值法缺点出现的情况。放大图像后图像中的一些曲线看起来更平滑,对一张图像反复放大缩小后失真现象不严重,处理效果较好。缺点:处理速度慢,在matlab2020B实验环境中往往需要对一张图像处理约3秒左右。对于图像的最外圈边缘也难以处理。文章来源地址https://www.toymoban.com/news/detail-456072.html

四、实验心得

到了这里,关于MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数字图像处理】实验(2)——图像增强(MATLAB实现)

    (1)进一步掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数。 (2)掌握各种图像增强方法。 1.打开一幅彩色图像Image1,使用Matlab图像处理函数,对其进行下列变换: (1)将Image1灰度化为gray,统计并显示其灰度直方图; (2)对gray进行分段线性变换; (3)对gray进行

    2023年04月23日
    浏览(57)
  • 数字图像处理之matlab实验(五):形态学图像处理

    常见的形态学处理包括腐蚀、膨胀、开运算、闭运算。不同的操作有不同的作用,同样的操作在不同类型的图片上也有不同效果,具体效果如下表格所示。要求熟练掌握对二值图像的形态学处理。 不同操作对不同类型图像处理效果 一、对二值图像进行处理 1、结构元素 在开

    2024年02月04日
    浏览(65)
  • 【数字图像处理】实验(3)——图像综合应用:皮肤美化(MATLAB实现)

    (1)了解和掌握图像处理工具 Matlab ,熟悉基于 Matlab 的图像处理函数,并为下一步编程进行图像处理打下基础。 (2)理解色彩的概念,掌握图像代数运算,几何变换方法。 1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。 2.直方图均衡化通过点运

    2024年02月05日
    浏览(52)
  • 数字图像处理---低高通滤波实验(MATLAB实现)

    1. 了解图像傅里叶变换的意义和手段; 2. 熟悉理想低通滤波器、巴特沃斯低通滤波器、高斯低通滤波器的基本原理和性质; 3. 熟悉理想高通滤波器、巴特沃斯高通滤波器、高斯高通滤波器的基本原理和性质; 4. 掌握MATLAB编程实现数字图像的低高通滤波器的变换,并分析各参

    2024年02月05日
    浏览(41)
  • 数字图像处理之matlab实验(三):空间滤波器

    空间滤波,就是在原图像上,用一个固定尺寸的模板去做卷积运算,得到的新图像就是滤波结果。滤波,就是过滤某种信号的意思。过滤哪种信号取决于模板设计,如果是锐化模板,处理后就保留高频信号,如果是平滑模板,处理后就保留低频信号。 (1)模板运算 图像处理

    2024年04月28日
    浏览(51)
  • 数字图像处理 matlab图像的几何运算 实验三 旋转 缩放 裁剪 镜像变换 平移

    原图: 读取原图(这里我的图片名字是atm.png): 我们先说原理,图像旋转的本质是向量的旋转。 矩阵乘法的实质是进行线性变换,因此对一个向量进行旋转操作也可以通过矩阵和向量相乘的方式进行。 因为图像都是通过二维矩阵存放的(单通道),所以对图像进行旋转时

    2024年02月07日
    浏览(54)
  • (数字图像处理MATLAB+Python)第三章图像基本运算-第二节:图像代数运算

    A:概述 加法运算 :指将两幅同大小的图像进行像素级别的加法操作,得到一幅新的图像。设两幅图像对应的像素值分别为 f 1 ( x , y ) f_{1}(x,y) f 1 ​ ( x , y ) 和 f 2 ( x , y ) f_{2}(x,y) f 2 ​ ( x , y ) ,则它们的加法运算可表示为 g ( x , y ) = f 1 ( x , y ) + f 2 ( x , y ) g(x,y)=f_{1}(x,y) + f_{

    2023年04月12日
    浏览(67)
  • (数字图像处理MATLAB+Python)第十二章图像编码-第一、二节:图像编码基本理论和无损编码

    图像编码 :一种将数字图像转换为压缩表示形式的过程。它的目标是减少图像数据的存储空间,并在传输或存储时减少带宽和存储需求、主要分为两类 无损压缩 :尽可能地保留原始图像的所有信息,以实现无失真的压缩。其中最常见的算法之一是无损JPEG(JPEG-LS)编码,它

    2024年02月10日
    浏览(146)
  • 探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)

    欢迎阅读本篇博客,我们将深入探讨MATLAB语言的基础知识与实用技能,旨在帮助初学者、初中级MATLAB程序员以及在校大学生系统地掌握这门强大的科学计算与数据可视化工具。 一、MATLAB的基础知识 1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环 二、MATLAB的实用技能

    2024年03月12日
    浏览(62)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包