Python OpenCV对图像像素进行操作

 更新时间:2022年01月10日 14:42:17   作者:Hong_Youth  
大家好,本篇文章主要讲的是Python OpenCV对图像像素进行操作,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

遍历并修改图像像素值

在使用opencv处理图像时,有时需要对图像的每个像素点进行处理,比如取反、修改值等操作,就需要通过h和w遍历像素。
依然以下图为例:

OpenCV-Python对图像像素进行操作_python

具体代码:

import cv2 as cv
import numpy as np


def image_pixel(image_path: str):
    img = cv.imread(image_path, cv.IMREAD_COLOR)
    cv.imshow('input', img)

    h, w, c = img.shape
    # 遍历像素点,修改图像b,g,r值
    for row in range(h):
        for col in range(w):
            b, g, r = img[row, col]
            # img[row, col] = (255 - b, 255 - g, 255 - r)
            # img[row, col] = (255 - b, g, r)
            # img[row, col] = (255 - b, g, 255 - r)
            img[row, col] = (0, g, r)

    cv.imshow('result', img)
    cv.imwrite('images/result.jpg', img)
    cv.waitKey(0)
    cv.destroyAllWindows()

结果展示:

OpenCV-Python对图像像素进行操作_python_02

图像的加减乘除运算

图像的加减运算可以调整图片的亮度和对比度。图像的加减运算可以调整图像的亮度;图像的乘除运算可以调整图像的对比度。

具体代码:

# -*-coding:utf-8-*-
"""
File Name: image_pixel_operation.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2 as cv
import numpy as np


def math_pixel(image_path: str):
    img = cv.imread(image_path, cv.IMREAD_COLOR)
    cv.imshow('input', img)
    h, w, c = img.shape

    blank = np.zeros_like(img)
    blank[:, :] = (2, 2, 2)  # 所有像素值设为50

    # 改变图像亮度
    mask = cv.add(img, blank)  # 图像加操作。图像形状一样就可以相加,像素值类型不一样不影响, 人为的增加了亮度
    mask = cv.subtract(img, blank)  # 图像减操作。人为的降低了亮度

    # 改变图像对比度
    # result = cv.divide(img, blank)  # 图像除操作
    result = cv.multiply(img, blank)  # 图像乘操作

    cv.imshow('blank', blank)
    cv.imshow('mask', mask)
    cv.imshow('contrast', result)
    cv.waitKey(0)
    cv.destroyAllWindows()

效果展示:

OpenCV-Python对图像像素进行操作_ide_03

 到此这篇关于Python OpenCV对图像像素进行操作的文章就介绍到这了,更多相关Python OpenCV图像像素操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 数据可视化Pyecharts的实际使用方式

    数据可视化Pyecharts的实际使用方式

    这篇文章主要介绍了数据可视化Pyecharts的实际使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Python使用for实现无限循环的多种方式汇总

    Python使用for实现无限循环的多种方式汇总

    这篇文章主要介绍了Python使用for实现无限循环的多种方式汇总,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 如何利用python提取字符串中的数字

    如何利用python提取字符串中的数字

    这篇文章主要给大家介绍了关于如何利用python提取字符串中数字,以及匹配指定字符串开头的数字和时间的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • python自动化测试之DDT数据驱动的实现代码

    python自动化测试之DDT数据驱动的实现代码

    这篇文章主要介绍了python自动化测试之DDT数据驱动的实现代码,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • pycharm 使用心得(二)设置字体大小

    pycharm 使用心得(二)设置字体大小

    pycharm 是很好的一个IDE,在windows下,和macOS下,都能很好的运行。唯一缺点是启动慢。默认字体太小,在mac下,需要瞪大24K氪金狗眼才能看清。 为了保护好眼睛,我们需要把字体调整大一些:
    2014-06-06
  • Python生成扫雷地图的方法

    Python生成扫雷地图的方法

    这篇文章主要为大家详细介绍了Python生成扫雷地图的方法,并非游戏实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Tensorflow加载与预处理数据详解实现方法

    Tensorflow加载与预处理数据详解实现方法

    读取大型数据集并对其进行有效预处理可能对其他深度学习库来说很难实现,但是TensorFlow借助Data API很容易实现:只需创建一个数据集对象,并告诉它如何从何处获取数据以及如何对其进行转换
    2022-11-11
  • python多线程编程方式分析示例详解

    python多线程编程方式分析示例详解

    本文介绍一下有关Python多线程的相关应用技巧,线程相对进程来说是"轻量级"的,操作系统用较少的资源创建和管理线程。程序中的线程在相同的内存空间中执行,并共享许多相同的资源,下面看使用方法
    2013-12-12
  • 关于Python中flask-httpauth库用法详解

    关于Python中flask-httpauth库用法详解

    这篇文章主要介绍了关于Python中flask-httpauth库用法详解,Flask-HTTPAuth是一个 Flask 扩展,它简化了 HTTP 身份验证与 Flask 路由的使用,需要的朋友可以参考下
    2023-04-04
  • python中的lambda表达式用法详解

    python中的lambda表达式用法详解

    这篇文章主要介绍了python中的lambda表达式用法,详细分析了lambda函数的功能、定义、使用方法与相关技巧,需要的朋友可以参考下
    2016-06-06

最新评论