OpenCV模块程序测试PCA和SVM测试【8】

184 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

  • 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️
  • 1-0

    本博文接上一篇博文,继续进行部分 opencv Python 示例代码运行 效果测试

    • 本博文的测试是直接拉取 opencv-master4.5.1,然后在opencv/samples/python/tutorial_code/ 目录下对不同模块 py 文件进行测试

    0-9


    imshow and imsave【弹框和保存图片】


    display_image.py 代码内容如下:

    ## [imports]
    import cv2 as cv
    import sys
    ## [imports]
    ## [imread]
    img = cv.imread(cv.samples.findFile("starry_night.jpg"))
    ## [imread]
    ## [empty]
    if img is None:
        sys.exit("Could not read the image.")
    ## [empty]
    ## [imshow]
    cv.imshow("Display window", img)
    k = cv.waitKey(0)
    ## [imshow]
    ## [imsave]
    if k == ord("s"):
        cv.imwrite("starry_night.png", img)
    ## [imsave]
    
    

    运行该代码:

    cd opencv/samples/python/tutorial_code/introduction/display_image
    
    cp ../../../../data/starry_night.jpg .
    
    python display_image.py 
    
    

    效果如下:

    1-0


    Back Projection【绘制直方图 - 反向投影 】


    Back Projection 相关概念自行查阅;


    运行代码一:

    cd opencv/samples/python/tutorial_code/Histograms_Matching/back_projection
    
    python calcBackProject_Demo1.py --input ../../../../data/ml.png 
    # 或者
    python calcBackProject_Demo2.py --input ../../../../data/ml.png 
    

    运行效果如下:

    2-0

    运行代码二:

    # 切换目录
    cd ../histogram_calculation/
    
    python calcHist_Demo.py --input ../../../../data/lena.jpg
    
    # 发生了运行报错【尚未处理】:
    TypeError: type numpy.ndarray doesn't define __round__ method
    

    运行代码三【histogram comparison methods -】:


    对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度进而比较图像本身的相似程度 histogram comparison -- 可参考博文

    opencv/samples/python/tutorial_code/Histograms_Matching/histogram_comparison
    
    python compareHist_Demo.py --input1 ../../../../data/lena.jpg --input2 ../../../../data/cards.png --input3 ../../../../data/ml.png 
    

    运行输出如下:

    Method: 0 Perfect, Base-Half, Base-Test(1), Base-Test(2) : 1.0 / 0.9275414189405695 / -0.0034291593953759848 / -0.006776118451912055
    Method: 1 Perfect, Base-Half, Base-Test(1), Base-Test(2) : 0.0 / 11.932779909213997 / 40.640700210830865 / 41.45697565518345
    Method: 2 Perfect, Base-Half, Base-Test(1), Base-Test(2) : 40.66139216959709 / 35.109732454584446 / 0.012477086027502082 / 0.04159197019907879
    Method: 3 Perfect, Base-Half, Base-Test(1), Base-Test(2) : 1.0536712127723509e-08 / 0.16632550782296035 / 0.9822894606427958 / 0.9807740056348029
    
    

    运行代码四【histogram_equalization -- 直方图均衡化】:

    # 切换 histogram_equalization  目录
    cd ../histogram_equalization/
    
    python EqualizeHist_Demo.py --input ../../../../data/lena.jpg 
    
    

    运行效果:

    2-1


    线性混合【两个图像合成 】


    通过调节图像的透明度来合成图像【得到图像叠加的效果】


    运行代码一:

    cd opencv/samples/python/tutorial_code/highgui/trackbar
    
    # 这里输入的图像: both have to be of the same size and type
    python AddingImagesTrackbar.py --input1 ../../../../data/LinuxLogo.jpg --input2 ../../../../data/WindowsLogo.jpg 
    
    

    输入图像:

    5-0 5-1

    运行效果如下:

    5-2


    900.png

    博主简介:软件工程硕士、已毕业、马上 10w 读者 粉丝

    • 🍊 计算机视觉:超分重建、图像修复、目标检测、风格迁移 等领域 稍有所学
    • 🍊 AI 工程化:Ncnn、MNN、TensorRT 正在 学习
    • 🍊 C++、Python、Java 略懂一二
    • 🍊 👋 Follow me 👋,一起 Get 更多有趣 AI、实战博文教程、冲冲冲 🚀 🚀

    喜欢请关注 墨理学AI 及其 同名 公众号 墨理学AI

    取经路上,让墨理学AI 陪你畅享更多有趣AI