Python OpenCV对图像像素进行操作

作者:Hong_Youth 时间:2021-02-25 13:02:20 

遍历并修改图像像素值

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

Python OpenCV对图像像素进行操作

具体代码:

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()

结果展示:

Python OpenCV对图像像素进行操作

图像的加减乘除运算

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

具体代码:

# -*-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()

效果展示:

Python OpenCV对图像像素进行操作

来源:https://blog.51cto.com/u_15483653/4904096

标签:Python,OpenCV,像素
0
投稿

猜你喜欢

  • python去除空格和换行符的实现方法(推荐)

    2021-08-26 02:58:13
  • YiiFramework入门知识点总结(图文教程)

    2023-11-20 18:41:03
  • Python趣味实例,实现一个简单的抽奖刮刮卡

    2023-07-20 18:59:41
  • Oracle 下的开发日积月累

    2009-02-28 11:08:00
  • 如何利用Python开发一个简单的猜数字游戏

    2022-05-21 20:38:08
  • Python第三方库jieba库与中文分词全面详解

    2022-03-14 22:32:40
  • 图文详解感知机算法原理及Python实现

    2022-03-07 23:56:34
  • Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)

    2021-09-14 00:22:11
  • Python wxpython模块响应鼠标拖动事件操作示例

    2022-11-01 04:40:16
  • 在PyCharm的 Terminal(终端)切换Python版本的方法

    2021-10-31 08:37:07
  • Python实现直播推流效果

    2023-10-06 12:43:29
  • 利用Python复制文件的9种方法总结

    2022-06-25 15:00:27
  • python实现批量监控网站

    2023-07-22 20:41:08
  • Atom的python插件和常用插件说明

    2022-11-29 00:46:08
  • django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】

    2022-02-27 23:20:03
  • 用asp判断某IP是否属于某网段的另类算法

    2007-09-28 12:33:00
  • 如何利用Tensorflow2进行猫狗分类识别

    2021-06-29 18:58:12
  • python逐行读取文件内容的三种方法

    2023-01-05 14:07:30
  • 检测tensorflow是否使用gpu进行计算的方式

    2021-11-19 11:24:33
  • TensorFlow:将ckpt文件固化成pb文件教程

    2021-01-24 11:33:45
  • asp之家 网络编程 m.aspxhome.com