Python OpenCV对图像像素进行操作
作者:Hong_Youth 发布时间:2021-02-25 13:02:20
标签:Python,OpenCV,像素
遍历并修改图像像素值
在使用opencv处理图像时,有时需要对图像的每个像素点进行处理,比如取反、修改值等操作,就需要通过h和w遍历像素。
依然以下图为例:
具体代码:
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()
结果展示:
图像的加减乘除运算
图像的加减运算可以调整图片的亮度和对比度。图像的加减运算可以调整图像的亮度;图像的乘除运算可以调整图像的对比度。
具体代码:
# -*-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()
效果展示:
来源:https://blog.51cto.com/u_15483653/4904096


猜你喜欢
- 简介除ide的执行方式外,命令行的方式执行Python脚本是参数化程序执行的一种常见且简单的方法,正确处理命令行参数,可以提供给包含某种参数
- 工具安装主要调用win32库实现分辨率获取和读写,需要安装pywin32示例中是从execl列表中读取需要设置的分辨率,需要安装xlrd用到
- 本文实例讲述了Python函数装饰器实现方法。分享给大家供大家参考,具体如下:编写函数装饰器这里主要介绍编写函数装饰器的相关内容。跟踪调用如
- 本文实例为大家分享了jQuery轮播效果展示的具体代码,供大家参考,具体内容如下jQ代码: 在写jQuery代码之前一定要先导库,此处我用的
- 步骤1:关闭MySQL服务右击【计算机】,选择【管理】,打开“计算机管理”界面选择【服务和应用程序】
- Image and text elements that appear in another element are called floa
- 一、创建飞书机器人自定义飞书机器人操作步骤,具体详见飞书官方文档:《机器人 | 如何在群聊中使用机器人?》二、调用飞书发送消息自定义机器人添
- 1 词频统计1.1 简单词频统计1.导入jieba库并定义文本import jiebatext = "Python是一种高级编程语
- 目录前言一、样式穿透1. 什么是样式穿透?2. 如何使用?二、混入1. 什么是混入?2. 如
- <!doctype html> <html> <head> <meta content="
- 如何制作一个防止多次刷新计数的图片计数器?请问如何做一个专业的图片计数器? <%countlong
- 如下所示:import cv2fps = 16 size = (width,height) videowriter = cv2.VideoW
- 1、通过探测Flash Player的版本,来决定显示Flash内容还是替换内容,避免了过时的Flash插件影响Flash内容的正常显示。2
- MySQL 5.0.16的乱码问题可以用下面的方法解决:1.设置phpMyAdminLanguage:Chinese simplified
- 效果图:图(1)初始图图(2)点击“从右侧划出”代码如下:<!DOCTYPE html><html> <hea
- 本文实例为大家分享了微信小程序实现吸顶盒效果的具体代码,供大家参考,具体内容如下html部分 <!-- 列表 -->&
- 我们可以通过mysql命令查看mysql的安装路径:# 以下两个sql任意一个可查询select @@basedir as basePath
- mysql字段的数据类型支持json格式,可以直接存储json数组和json对象。一、插入json数据的方式有两种1、以普通字符串形式插入,
- 前言神奇的JQuery怎么设置checkbox状态时好时坏?明明同一行代码,断点跟踪确实执行了,但是有时候好使,有时候却没有生效。毕竟对JS
- 为什么使用三方支付? 再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账),特别的不方便,为了解决这些问题,就有了三