数字图像处理:实验七

uu们!这是我们目前数字图像系列的最后一张,之后有关人工智能结合的数字图像处理咸鱼哥正在学习和创作中,所以还请大家给咸鱼哥点时间,同时也提前预祝大家2025年新春快乐!(咸鱼哥真诚的祝愿每一个人),所以大家先开始今日的阅读和学习吧,后天就是春节了,加油哦!

一、基础知识

本节任务主要是有关的滤波器特性和相关底层的学习和编写

掌握内容:

1、频域图像增强的基本概念

图像(空域)可以表示为:f(x,y)

图像(频域)可以表示为:F(u,v)

2、低通滤波器的基本类型和增强效果

低通滤波器:让图像的低频成分通过,截止高频成分

3、高通滤波器的基本类型和增强效果

高通滤波器:让图像的高频成分通过,截止低频成分

(图例)

二、实验要求

1、对自选图分别进行低通滤波和高通滤波:

选用低通滤波器:理想低通滤波器、巴特沃斯低通滤波器、高斯低通滤波器;

选用高通滤波器:理想高通滤波器、巴特沃斯高通滤波器、高斯高通滤波器。

2、其中,针对所有的理想滤波器和高斯滤波器选择的 截止频率为D0 =10、30、50;针对所有的巴特沃斯滤 波器,当截止频率一定即D0 =20时,阶数n选择n=1、 2、3,以及当阶数一定即n=2时,截止频率D0 选择D0 =25、 50、75。

3、每幅输出图包含三类子图(每幅子图都要标注对应的名称):原图、滤波器透视图(所有不同参数对应的透视图)、滤波结果图(所有方式滤波后的结果)。例如:理想低通滤波器输出图有7幅子图 原图(1幅)、滤波器透视图(3幅:不同截止频率)、滤波结果图(3幅:不同截止频率) 此外,巴特沃斯滤波器分成两类输出图:

A)截止频率一定,改变阶数; B)阶数一定,改变截止频率。

三、应用编程

基于以上滤波器的构成,将上述滤波器进行组合,设计出新的滤波器对一幅有缺陷的图(具有噪声、模糊、 对比度低等特性)进行图像增强。

四、编程代码与结果

Matlab 复制代码
A=imread('1.1.png');%读入图像你们并赋值给a
A_1=double(rgb2gray(A));%把图像转换为灰度图并换为双精度赋值给A
 
[ra,ca]=size(A_1);%读出图像大小并赋值给ra,ca
figure;
subplot(4,2,1),imshow(A,[]),title('原图');
 
P=2*ra;Q=2*ca;%设置填充后图像大小
A_2=zeros(P,Q);%用零矩阵预设填充后的图像
A_2(1:ra,1:ca)=A_1;%完成填充
[Ra,Ca]=size(A_2);%计算填充后图像大小
[y,x]=meshgrid(0:Ca-1,0:Ra-1);%生成空域二维坐标
F_B=fft2(A_2.*(-1).^(x+y));%乘以-1的x+y次方计算傅里叶变换
 
%------理想滤波低通------
D_0=12;%设置滤波器截止频率
H_1=zeros(P,Q);%预设滤波器
for n=1:P
    for m=1:Q
       if(n-P/2-1)^2+(m-Q/2-1)^2<=D_0^2%判断距离是否小于截止频率
        H_1(n,m)=1;%小于截止频率赋值1
       else
        H_1(n,m)=0;%赋值赋值0
       end
    end
end
 
subplot(4,2,3),mesh(H_1),title('滤波器透视图,理想低通D0=10');
G = F_B.*H_1;%用滤波器滤波
fa=ifft2(G);%做逆傅里叶变换
fa=real(fa).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
fA=fa(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(fA,[]),title('滤波结果图,理想低通D0=10');
 
 
D_1=30;%设置滤波器截止频率
H_2=zeros(P,Q);%预设滤波器
for n=1:P
    for m=1:Q
       if(n-P/2-1)^2+(m-Q/2-1)^2<=D_1^2%判断距离是否小于截止频率
        H_2(n,m)=1;%小于截止频率赋值1
       else
        H_2(n,m)=0;%赋值赋值0
       end
    end
end
 
subplot(4,2,5),mesh(H_2),title('滤波器透视图,理想低通D0=30');
G_1=F_B.*H_2;%用滤波器滤波
fa_1=ifft2(G_1);%做逆傅里叶变换
fa_1=real(fa_1).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
fA_1=fa_1(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(fA_1,[]),title('滤波结果图,理想低通D0=30');
 
D_2=50;%设置滤波器截止频率
H_3=zeros(P,Q);%预设滤波器
for n=1:P
    for m=1:Q
       if(n-P/2-1)^2+(m-Q/2-1)^2<=D_2^2%判断距离是否小于截止频率
        H_3(n,m)=1;%小于截止频率赋值1
       else
        H_3(n,m)=0;%赋值赋值0
       end
    end
end
subplot(4,2,7),mesh(H_3),title('滤波器透视图,理想低通D0=50');
G_2=F_B.*H_3;%用滤波器滤波
fa_2=ifft2(G_2);%做逆傅里叶变换
fa_2=real(fa_2).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
fA_2=fa_2(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(fA_2,[]),title('滤波结果图,理想低通D0=50');
 

结果:

Matlab 复制代码
%----理想高通滤波器-----
figure
subplot(4,2,1),imshow(A),title('原图');
H_4 = 1-H_1;%用1减去低通滤波器得到高通滤波器
subplot(4,2,3),mesh(H_4),title('滤波器透视图,理想高通D0=10');
G_3=F_B.*H_4;%用滤波器滤波
fa_3=ifft2(G_3);%做逆傅里叶变换
fa_3=real(fa_3).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
fA_3=fa_3(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(fA_3,[]),title('滤波结果图,理想高通D0=10');
 
H_5=1-H_2;%用1减去低通滤波器得到高通滤波器
subplot(4,2,5),mesh(H_4),title('滤波器透视图,理想高通D0=30');
G_4=F_B.*H_5;%用滤波器滤波
fa_4=ifft2(G_4);%做逆傅里叶变换
fa_4=real(fa_4).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
fA_4=fa_4(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(fA_4,[]),title('滤波结果图,理想高通D0=30');
 
H_6=1-H_3;%用1减去低通滤波器得到高通滤波器
subplot(4,2,7),mesh(H_6),title('滤波器透视图,理想高通D0=50');
G_5=F_B.*H_6;%用滤波器滤波
fa_5=ifft2(G_5);%做逆傅里叶变换
fa_5=real(fa_5).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
fA_5=fa_5(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(fA_5,[]),title('滤波结果图,理想高通D0=50');

结果:

Matlab 复制代码
%-----高斯低通滤波器-------
figure
subplot(4,2,1),imshow(A),title('原图');
U = 0:P-1;
V = 0:Q-1;%赋值傅里叶频谱频率值
[V,U] = meshgrid(0:Q-1,0:P-1);%生成频域二维坐标
D_mid = sqrt((U-P/2).^2+(V-Q/2).^2);%赋值频域点到中心距离
H_uv = exp(-D_mid.^2/2/D_0/D_0);%生成滤波器
subplot(4,2,3),mesh(H_uv),title('滤波器透视图,高斯低D0=10)');
G_pxy=F_B.*H_uv;%用滤波器滤波
g_pxy=ifft2(G_pxy);%做逆傅里叶变换
g_pxy=real(g_pxy).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
g_xy=g_pxy(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(g_xy,[]),title('滤波结果图,高斯低D0=10)');
 
H_uv_1=exp(-D_mid.^2/2/D_1/D_1);%生成滤波器
subplot(4,2,5),mesh(H_uv_1),title('滤波器透视图,高斯低D0=30)');
G_pxy_1=F_B.*H_uv_1;%用滤波器滤波
g_pxy_1=ifft2(G_pxy_1);%做逆傅里叶变换
g_pxy_1=real(g_pxy_1).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
g_xy_1=g_pxy_1(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(g_xy_1,[]),title('滤波结果图,高斯低D0=30)');
H_uv_2=exp(-D_mid.^2/2/D_2/D_2);%生成滤波器
subplot(4,2,7),mesh(H_uv_2),title('滤波器透视图,高斯低D0=50)');
G_pxy_2=F_B.*H_uv_2;%用滤波器滤波
g_pxy_2=ifft2(G_pxy_2);%做逆傅里叶变换
g_pxy_2=real(g_pxy_2).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
g_xy_2=g_pxy_2(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(g_xy_2,[]),title('滤波结果图,高斯低D0=50)');
Matlab 复制代码
%-------高斯高通滤波器-----
figure
subplot(4,2,1),imshow(A),title('原图');
H_uv_3=1-H_uv;%用1减去低通滤波器得到高通滤波器
subplot(4,2,3),mesh(H_uv_3),title('滤波器透视图,高斯高0=10)');
G_pxy_3=F_B.*H_uv_3;%用滤波器滤波
g_pxy_3=ifft2(G_pxy_3);%做逆傅里叶变换
g_pxy_3=real(g_pxy_3).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
g_xy_3=g_pxy_3(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(g_xy_3,[]),title('滤波结果图,高斯高D0=10)');
H_uv_4=1-H_uv_1;%用1减去低通滤波器得到高通滤波器
subplot(4,2,5),mesh(H_uv_4),title('滤波器透视图,高斯高D0=30)');
G_pxy_4=F_B.*H_uv_4;%用滤波器滤波
g_pxy_4=ifft2(Gpxy4);%做逆傅里叶变换
g_pxy_4=real(g_pxy_4).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
g_xy_4=g_pxy_4(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(g_xy_4,[]),title('滤波结果图,高斯高D0=30)');
H_uv_5=1-H_uv_2;%用1减去低通滤波器得到高通滤波器
subplot(4,2,7),mesh(H_uv_5),title('滤波器透视图,高斯高D0=50)');
G_pxy_5=F_B.*H_uv_5;%用滤波器滤波
g_pxy_5=ifft2(G_pxy_5);%做逆傅里叶变换
g_pxy_5=real(g_pxy_5).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
g_xy_5=g_pxy_5(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(g_xy_5,[]),title('滤波结果图,高斯高D0=50)');
 
 
%-----巴特沃斯低通滤波器-----
U=0:P-1;V=0:Q-1;%赋值傅里叶频谱频率值
[V,U]=meshgrid(0:Q-1,0:P-1);%生成频域二维坐标
D_mid=sqrt((U-P/2).^2+(V-Q/2).^2);%赋值频域点到中心距离
Matlab 复制代码
figure;
subplot(4,2,1),imshow(A),title('原图');
 
D_3=20;%赋值截止频率
n=1;%赋值巴特沃斯滤波器阶数
H_UV=1./(1+(D_mid/D_3).^(2*n));%生成滤波器
subplot(4,2,3),mesh(H_UV),title('滤波器透视图,巴低通D0=20,n=1)');
G_PXY=F_B.*H_UV;%用滤波器滤波
f_PXY=ifft2(G_PXY);%做逆傅里叶变换
f_PXY=real(f_PXY).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY=f_PXY(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(f_XY,[]),title('滤波结果图,巴低通D0=20,n=1)');
 
n1=2;%赋值巴特沃斯滤波器阶数
 
H_UV_1=1./(1+(D_mid/D_3).^(2*n1));%生成滤波器
subplot(4,2,5),mesh(H_UV_1),title('滤波器透视图,巴低通D0=20,n=2)');
G_PXY_1=F_B.*H_UV_1;%用滤波器滤波
f_PXY_1=ifft2(G_PXY_1);%做逆傅里叶变换
f_PXY_1=real(f_PXY_1).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY1=f_PXY_1(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(f_XY1,[]),title('滤波结果图,巴低通D0=20,n=2)');
 
n2=3;%赋值巴特沃斯滤波器阶数
 
H_UV_2=1./(1+(D_mid/D_3).^(2*n2));%生成滤波器
subplot(4,2,7),mesh(H_UV_2),title('滤波器透视图,巴低通D0=20,n=3)');
G_PXY_2=F_B.*H_UV_2;%用滤波器滤波
f_PXY_2=ifft2(G_PXY_2);%做逆傅里叶变换
f_PXY_2=real(f_PXY_2).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY2=f_PXY_2(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(f_XY2,[]),title('滤波结果图,巴低通D0=20,n=3)');
Matlab 复制代码
figure
subplot(4,2,1),imshow(A),title('原图');
D_4=25;%赋值截止频率
D_5=50;%赋值截止频率
D_6=75;%赋值截止频率
 
n=2;%赋值巴特沃斯滤波器阶数
 
H_UV_3=1./(1+(D_mid/D_4).^(2*n));%生成滤波器
subplot(4,2,3),mesh(H_UV_3),title('滤波器透视图,巴低通D0=25,n=2)');
G_PXY_3=F_B.*H_UV_3;%用滤波器滤波
f_PXY_3=ifft2(G_PXY_3);%做逆傅里叶变换
f_PXY_3=real(f_PXY_3).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY3=f_PXY_3(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(f_XY3,[]),title('滤波结果图,巴低通D0=25,n=2)');
 
n=2;%赋值巴特沃斯滤波器阶数
 
H_UV_4=1./(1+(D_mid/D_5).^(2*n));%生成滤波器
subplot(4,2,5),mesh(H_UV_4),title('滤波器透视图,巴低通D0=50,n=2)');
G_PXY_4=F_B.*H_UV_4;%用滤波器滤波
f_PXY_4=ifft2(G_PXY_4);%做逆傅里叶变换
f_PXY_4=real(f_PXY_4).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY4=f_PXY_4(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(f_XY4,[]),title('滤波结果图,巴低通D0=50,n=2)');
 
n=2;%赋值巴特沃斯滤波器阶数
 
H_UV_5=1./(1+(D_mid/D_6).^(2*n));%生成滤波器
subplot(4,2,7),mesh(H_UV_5),title('滤波器透视图,巴低通D0=75,n=2)');
G_PXY_5=F_B.*H_UV_5;%用滤波器滤波
f_PXY_5=ifft2(G_PXY_5);%做逆傅里叶变换
f_PXY_5=real(f_PXY_5).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY5=f_PXY_5(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(f_XY5,[]),title('滤波结果图,巴低通D0=75,n=2)');
Matlab 复制代码
%----巴特沃斯高通滤波器----
figure
subplot(4,2,1),imshow(A),title('原图');
n=1;%赋值巴特沃斯滤波器阶数
H_UV=1./(1+(D_3./D_mid).^(2*n));%生成滤波器
subplot(4,2,3),mesh(H_UV),title('滤波器透视图,巴高通D0=20,n=1)');
G_PXY=F_B.*H_UV;%用滤波器滤波
f_PXY=ifft2(G_PXY);%做逆傅里叶变换
f_PXY=real(f_PXY).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY=f_PXY(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(f_XY,[]),title('滤波结果图,巴高通D0=20,n=1)');
n1=2;%赋值巴特沃斯滤波器阶数
H_UV_1=1./(1+(D_3./D_mid).^(2*n1));%生成滤波器
subplot(4,2,5),mesh(H_UV_1),title('滤波器透视图,巴高通D0=20,n=2)');
G_PXY_1=F_B.*H_UV_1;%用滤波器滤波
f_PXY_1=ifft2(G_PXY_1);%做逆傅里叶变换
f_PXY_1=real(f_PXY_1).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY1=f_PXY_1(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(f_XY1,[]),title('滤波结果图,巴高通D0=20,n=2)');
n2=3;%赋值巴特沃斯滤波器阶数
H_UV_2=1./(1+(D_3./D_mid).^(2*n2));%生成滤波器
subplot(4,2,7),mesh(H_UV_2),title('滤波器透视图,巴高通D0=20,n=3)');
G_PXY_2=F_B.*H_UV_2;%用滤波器滤波
f_PXY_2=ifft2(G_PXY_2);%做逆傅里叶变换
f_PXY_2=real(f_PXY_2).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY2=f_PXY_2(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(f_XY2,[]),title('滤波结果图,巴高通D0=20,n=3)');
Matlab 复制代码
figure
subplot(4,2,1),imshow(A),title('原图');
D_4=25;D_5=50;D_6=75;%赋值截止频率
n=2;%赋值巴特沃斯滤波器阶数
H_UV_3=1./(1+(D_4./D_mid).^(2*n));%生成滤波器
subplot(4,2,3),mesh(H_UV_3),title('滤波器透视图,巴高通D0=25,n=2)');
G_PXY_3=F_B.*H_UV_3;%用滤波器滤波
f_PXY_3=ifft2(G_PXY_3);%做逆傅里叶变换
f_PXY_3=real(f_PXY_3).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY3=f_PXY_3(1:ra,1:ca);%除去补零部分
subplot(4,2,4),imshow(f_XY3,[]),title('滤波结果图,巴高通D0=25,n=2)');
n=2;%赋值巴特沃斯滤波器阶数
H_UV_4=1./(1+(D_5./D_mid).^(2*n));%生成滤波器
subplot(4,2,5),mesh(H_UV_4),title('滤波器透视图,巴高通D0=50,n=2)');
G_PXY_4=F_B.*H_UV_4;%用滤波器滤波
f_PXY_4=ifft2(G_PXY_4);%做逆傅里叶变换
f_PXY_4=real(f_PXY_4).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY4=f_PXY_4(1:ra,1:ca);%除去补零部分
subplot(4,2,6),imshow(f_XY4,[]),title('滤波结果图,巴高通D0=50,n=2)');
n=2;%赋值巴特沃斯滤波器阶数
H_UV_5=1./(1+(D_6./D_mid).^(2*n));%生成滤波器
subplot(4,2,7),mesh(H_UV_5),title('滤波器透视图,巴高通D0=75,n=2)');
G_PXY_5=F_B.*H_UV_5;%用滤波器滤波
f_PXY_5=ifft2(G_PXY_5);%做逆傅里叶变换
f_PXY_5=real(f_PXY_5).*(-1).^(x+y);%取实部后乘以(-1)的x+y次方
f_XY5=f_PXY_5(1:ra,1:ca);%除去补零部分
subplot(4,2,8),imshow(f_XY5,[]),title('滤波结果图,巴高通D0=75,n=2)');
 

编程应用:

Matlab 复制代码
% 读取图像
originalImage = imread('1.1.png'); % 请确保替换为您的图像文件名
grayImage = rgb2gray(originalImage); % 如果图像是彩色的,则转换为灰度图像
 
% 显示原始图像
figure;
imshow(grayImage);
title('Original Image');
 
% 进行傅里叶变换
F = fft2(double(grayImage));
Fshifted = fftshift(F); % 将低频分量移动到中心
 
% 计算频率域中的距离矩阵
[M, N] = size(Fshifted);
[u, v] = meshgrid(-floor(N/2):floor(N/2)-1, -floor(M/2):floor(M/2)-1);
D = sqrt(u.^2 + v.^2);
 
% 设置巴特沃斯滤波器的参数
D0_lowpass = 30; % 低通滤波器的截止频率
D0_highpass = 50; % 假设的高通滤波器截止频率(注意:高通通常通过低通补集得到)
n = 2; % 滤波器阶数
 
% 生成巴特沃斯低通滤波器
H_lowpass = 1 ./ (1 + (D / D0_lowpass).^(2 * n));
 
% 生成对应的高通滤波器(通过低通滤波器的补集)
H_highpass = 1 - H_lowpass;
% 注意:这里的高通滤波器是简化的,可能不是最优的。在实际应用中,
% 可能需要设计更精确的高通滤波器,特别是当需要特定的频率响应时。
 
% 应用低通滤波器并逆变换回空间域
F_filtered_lowpass = H_lowpass .* Fshifted;
F_ishifted_lowpass = ifftshift(F_filtered_lowpass);
image_lowpass = real(ifft2(F_ishifted_lowpass));
image_lowpass = uint8(mat2gray(image_lowpass) * 255); % 转换回uint8并归一化
 
% 应用高通滤波器并逆变换回空间域
% 注意:高通滤波后的图像可能需要额外的处理来确保数值范围在0-255之间
F_filtered_highpass = H_highpass .* Fshifted;
F_ishifted_highpass = ifftshift(F_filtered_highpass);
image_highpass = real(ifft2(F_ishifted_highpass));
% 由于高通滤波可能产生负值,我们需要进行偏移和缩放
image_highpass = image_highpass - min(image_highpass(:)); % 将最小值设为0
image_highpass = uint8(mat2gray(image_highpass) * 255); % 缩放至0-255范围并转换类型
 
% 结合低通和高通滤波后的图像(这里使用简单的加权和作为示例)
% 注意:这种结合方式可能不是最佳的,因为低通和高通滤波后的图像在数值和视觉上可能有很大差异
alpha = 0.5; % 权重因子,可以根据需要进行调整
enhancedImage = uint8(alpha * double(image_lowpass) + (1 - alpha) * double(image_highpass));
 
% 显示结果
figure;
subplot(2, 2, 1);
imshow(grayImage);
title('Original Image');
 
subplot(2, 2, 2);
imshow(image_lowpass);
title('Lowpass Filtered Image');
 
subplot(2, 2, 3);
imshow(image_highpass);
title('Highpass Filtered Image');
 
subplot(2, 2, 4);
imshow(enhancedImage);
title('Enhanced Image (Weighted Sum)');
 

结果:

五、结语

uu们!本次数字图像处理系列到这里将要暂停一段时间,因为咸鱼哥在后续数字图像上会有与人工智呢个结合的有关操作,所以呢,请uu们耐心等待一下,祝大家节日快乐!我们后续章节中再见!uu们!

ヽ( ̄ω ̄( ̄ω ̄〃)ゝ咸鱼哥敬上

相关推荐
好评笔记1 小时前
多模态论文笔记——ViViT
论文阅读·深度学习·机器学习·计算机视觉·面试·aigc·transformer
Say-hai2 小时前
QT6 + CMAKE编译OPENCV3.9
qt·opencv
Fxrain3 小时前
[Computer Vision]实验二:图像特征点提取
人工智能·计算机视觉
西猫雷婶6 小时前
python学opencv|读取图像(四十五)增加掩模:使用cv2.bitwise_and()函数实现图像按位与运算
开发语言·python·opencv
G.E.N.9 小时前
本地部署大模型实现OCR识别
人工智能·深度学习·计算机视觉·语言模型·ocr·边缘计算
种花生的图图10 小时前
《FreqMamba: 从频率角度审视图像去雨问题》学习笔记
图像处理·人工智能·笔记·学习·机器学习
Icomi_13 小时前
【外文原版书阅读】《机器学习前置知识》1.线性代数的重要性,初识向量以及向量加法
c语言·c++·人工智能·深度学习·神经网络·机器学习·计算机视觉
西猫雷婶14 小时前
python学opencv|读取图像(四十六)使用cv2.bitwise_or()函数实现图像按位或运算
人工智能·opencv·计算机视觉
风清扬雨15 小时前
[特殊字符]【计算机视觉】r=2 采样滤波器全解析 ✨
人工智能·计算机视觉·r语言