• 图像处理与计算机视觉--第四章-图像滤波与增强-第一部分


    目录

    1.灰度图亮度调整

    2.图像模板匹配

    3.图像裁剪处理

    4.图像旋转处理

    5.图像邻域与数据块处理


    1. 学习计算机视觉方向的几条经验:
    2. 1.学习计算机视觉一定不能操之过急,不然往往事倍功半!
    3. 2.静下心来,理解每一个函数/算法的过程和精髓,这个知识才真正是你的!
    4. 3.计算机视觉的参数非常多,你必须理解透并且学会运用,不然你只能做个调参侠!
    5. 4.做一件事就必须要从中学到什么,否则就算是再大的荣誉只是混来的,不真正属于你!
    6. 以上经验总结来自Neu.Ise.JiaT.Prof,也是Neu做cv的数一数二的教授了,希望能够带着这些经验继续前进,在cv的学习中有所感悟和收获!

    1.灰度图亮度调整

    1. 灰度图介绍:
    2. 1.灰度图,又称灰阶图。把白色和黑色之间按照对数关系分为若干等级,称为灰度。
    3. 2.灰度一般是2的整数次幂并且每个像素采用8比特来表示,灰度可以被量化为256及。
    4. 3.改变像素的亮度值是增强图像的常用方法,采用某种函数变换进行增强即可,一般用的比较多的是指数函数。
    5. 4.以下我们将展示采用直方图进行增强的效果,对应的函数是histeq()函数。
    6. histeq()函数:
    7. J = histeq(I) 变换灰度图像 I,以使输出灰度图像J的直方图具有64个bin且大致平坦。
    1. %%灰度图亮度调整
    2. clear all
    3. I = imread('tire.tif')
    4. J = histeq(I)
    5. figure
    6. subplot(2,2,1)
    7. imshow(I)
    8. subplot(2,2,2)
    9. imshow(J)
    10. subplot(2,2,3)
    11. imhist(I)
    12. subplot(2,2,4)
    13. imhist(J)
    14. saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','histeq','.png'])

    2.图像模板匹配

    1. 图像模板匹配
    2. 1.模板匹配就是在一个图像中识别出与模板相似的区域
    3. 因此我们设定输入输出如下所示:
    4. 输入:一张原始图像和模板图像
    5. 输出:在原始图像中找到与模板图像相似的区域
    6. 2.算法的原理也很简单,就是我们拿着模板和一个给定的标准,寻找最贴近标准的图像即可。
    7. 对于计算机来说,逐次比对的过程可以是,设置一个与模板相同大小的window, 按照一定的步长,
    8. 步长可以自己设定,向左向右依次滑动,会得到不同的子区域,然后逐次比对模板和子区域,找出
    9. 最好最符合的就是最为相似的。
    1. %%
    2. %%template matching
    3. %本题的标准就定在0.9
    4. clear
    5. a = imread('a.tif')
    6. [ma na]=size(a)%获取大小
    7. I = imread('text.png')
    8. figure
    9. imshow(I)
    10. [mi,ni]=size(I)%获取大小
    11. afft=fft2(a)%二维傅里叶变换
    12. Ifft=fft2(I)%二维傅里叶变换
    13. %计算用于 FFT 的输出图像大小,这是两个图像大小之和减去1。
    14. M = ma+mi-1
    15. N = na+ni-1
    16. %拓展到相同的维度
    17. afft(M,N)=0
    18. Ifft(M,N)=0
    19. filtered=ifft2(afft.*Ifft)%对扩展后的频域数据进行逆傅里叶变换
    20. filtered=filtered(1:mi,1:ni)%提取相同的大小区域,方便后续匹配
    21. filtered=filtered/max(max(filtered,[],1))%归一化操作
    22. %将匹配结果中大于0.9的像素设置为1,小于等于0.9的像素设置为0。
    23. result=filtered>0.9
    24. %绘制可视化图
    25. figure
    26. subplot(2,2,1)%模板
    27. imshow(a)
    28. subplot(2,2,2)%匹配图
    29. imshow(I)
    30. subplot(2,2,3)
    31. imshow(filtered)%归一化图全部是0-1
    32. subplot(2,2,4)
    33. imshow(result)%结果图
    34. saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','template_matching','.png'])

    3.图像裁剪处理

    1. 图像的裁剪处理
    2. 1.图像的裁剪处理用到imresize()函数.
    3. 2.B = imresize(A,scale) 返回图像 B,它是将A的长宽大小缩放图像
    4. scale倍之后的图像。输入图像 A 可以是灰度图像、RGB 图像、二值图像或分类图像。
    1. %%
    2. %图像裁剪
    3. clear
    4. figure
    5. I = imread('ci.bmp')
    6. J = imresize(I,0.5);%边缩小0.5倍
    7. figure
    8. imshow(I)
    9. figure
    10. imshow(J)

    4.图像旋转处理

    1. %%
    2. 和图像的裁剪差不多,我们也就不细讲了
    3. %%
    4. %图像旋转
    5. clear
    6. I = imread('ci.bmp')
    7. I1 = imrotate(I,45);
    8. % I1 = imresize(I,2,'nearest');
    9. figure
    10. subplot(1,2,1)
    11. imshow(I)
    12. subplot(1,2,2)
    13. imshow(I1,[])
    14. saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','iamge_imrptate','.png'])

    5.图像邻域与数据块处理

    1. 5.图像邻域与数据块处理:
    2. 1.某些图像处理运算需要分段处理图像,而不是一次处理整个图像。
    3. 2.滑动邻域运算通过对每个像素邻域应用算法,以一次一个像素的方式处理图像。
    4. 3.在另一种数据块处理中,图像被分成大小相等且不重叠的数据块,并对每个不同数据块应用算法。
    5. 然后,对邻域和数据块进行重组以形成输出图像。
    1. %%
    2. %5.图像邻域与数据块处理
    3. clear
    4. I = imread('tire.tif')
    5. f= inline('uint8(round(std2(x)*ones(size(x))))')
    6. I2 = blkproc(I,[8,8],f)%邻域处理
    7. %绘图可视化
    8. figure
    9. subplot(1,2,1)
    10. imshow(I)
    11. subplot(1,2,2)
    12. imshow(I2,[])
    13. saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','image block operation','.png'])

  • 相关阅读:
    vue3的路由配置
    【视频】报告分享|展望人工智能银行:当银行遇到AI
    【80天学习完《深入理解计算机系统》】第十六天 4.2 Y86-64的顺序实现
    【JAVAEE基础学习(16)】--简述ElasticSearch
    部署LVS-DR群集
    第10章——系统级I/O
    【数据结构】希尔排序(最小增量排序)
    回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测
    高通平台开发系列讲解(USB篇)Linux Android USB软件架构
    dede:arclist标签判断有缩略图则显示否则不显示或显示其他自定义图片
  • 原文地址:https://blog.csdn.net/m0_71819746/article/details/133282978