Opencv基础使用5——直方图|图像合成

举报
墨理学AI 发表于 2022/01/10 22:28:01 2022/01/10
【摘要】 本博文接上一篇博文,继续进行部分 opencv Python 示例代码运行 效果测试 环境搭建、所使用代码版本 – 参考该系列首篇博文 ---- 分割 - 视频人像跟踪 ope...

本博文接上一篇博文,继续进行部分 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]


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

运行该代码:

cd opencv/samples/python/tutorial_code/introduction/display_image

cp ../../../../data/starry_night.jpg .

python display_image.py 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

效果如下:

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 

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

运行效果如下:

2-0

运行代码二:

# 切换目录
cd ../histogram_calculation/

python calcHist_Demo.py --input ../../../../data/lena.jpg

# 发生了运行报错【尚未处理】:
TypeError: type numpy.ndarray doesn't define __round__ method

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

运行代码三【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 

  
 
  • 1
  • 2
  • 3

运行输出如下:

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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

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

# 切换 histogram_equalization  目录
cd ../histogram_equalization/

python EqualizeHist_Demo.py --input ../../../../data/lena.jpg 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

运行效果:

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 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输入图像:

5-0
5-1

运行效果如下:

5-2


文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。

原文链接:positive.blog.csdn.net/article/details/117284595

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。