前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV基础 | 5.像素运算

OpenCV基础 | 5.像素运算

作者头像
快学Python
发布2021-08-09 10:19:07
2650
发布2021-08-09 10:19:07
举报
文章被收录于专栏:快学Python

作者:小郭学数据

源自:快学python

学习视频可参见python+opencv3.3视频教学 基础入门[1]

今天写的是图像像素运算

outline

  • 算术运算
    • 加,减,乘,除
    • 应用:调节亮度,调正对比度
  • 逻辑运算
    • 与,或,非
    • 应用:遮罩层控制
  • 改变对比度,亮度

1.算术运算

两张形状大小完全相同的图进行加减乘除

原图如下

  • 两张图片的各个像素点的通道值相加
  • def add_demo(m1,m2): dst=cv.add(m1,m2) cv.imshow("add_demo",dst)
  • 应用:去除叠加性噪声 ,生成图像叠加效果

  • 两张图片各个像素点的通道值相减
  • def subtract_demo(m1,m2): dst=cv.subtract(m1,m2) cv.imshow("subtract_demo",dst)
  • 应用:显示两幅图像的差异,检测同一场景 两幅图像之间的变化;图像分割,如分割运动的车辆,减法去掉静止的部分,剩余的是运动元素和噪声。

  • 两张图片各个像素点的通道值相乘
  • def multiply_demo(m1, m2): dst = cv.multiply(m1, m2) cv.imshow("multiply_demo", dst)
  • 应用:图像的局部显示,用二值模板图像与原图像做乘法

  • 两张图片各个像素点的通道值相除
  • def divide_demo(m1, m2): dst = cv.divide(m1, m2) cv.imshow("divide_demo", dst)

2.逻辑运算

  • 全1得1
  • 应用:求两个子图的相交子图

  • 有1得1

  • 0得1,1得0 ,针对的是一张图

3.改变对比度,亮度

代码语言:javascript
复制
def contrast_brightness_demo(image, c, b):
    h, w, ch = image.shape
    #初始化一张黑图
    blank = np.zeros([h, w, ch], image.dtype)

    # 图像混合,c, 1-c为这两张图片的权重
    dst = cv.addWeighted(image, c, blank, 1-c, b)
    cv.imshow("contrast_brightness_demo", dst)
    
src=cv.imread("./images/lena.jpg")
#对比度1.2,亮度100
contrast_brightness_demo(src,1.2,100)

结果如下:

结语

以上内容仅是自我学习时记录的笔记,欢迎大家批评指正,一起学习进步。

参考资料

[1]

python+opencv3.3视频教学 基础入门: https://www.bilibili.com/video/BV1QW411F7e7?p=1

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 快学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.算术运算
  • 2.逻辑运算
  • 3.改变对比度,亮度
  • 结语
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档