OpenCV-Python图像像素处理
简介图像都是由像素点构成的,图像分类:
1、二值图像(任意一个像素只能是0或1);
2、灰度图像(任意一个像素值都在0~255);
3、RGB图像(任意一个像素是(R,G,B)构成的),但是OpenCV是默认颜色通道是BGR.
图像都是由像素点构成的,图像分类:
1、二值图像(任意一个像素只能是0或1);
2、灰度图像(任意一个像素值都在0~255);
3、RGB图像(任意一个像素是(R,G,B)构成的),但是OpenCV是默认颜色通道是BGR.
这节主要介绍下如何处理图像的像素点.
一、灰度图像
示例:
# -*- coding: utf-8 -*-
# Data: 2023/7/2
import cv2
img = cv2.imread("./1-gray.jpg",cv2.IMREAD_UNCHANGED)
# 获取100行,100列像素点的值
print(img[100,100])
# 修改100行,100列像素点的值
img[100,100] = 255
print(img[100,100])
# 修改10行到100行,50列到100列像素点的值
img[10:100,50:100] = 255
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果:
E:\python\opencv\venv\Scripts\python.exe E:\python\opencv\main.py
200
255
二、彩色图像
示例:
# -*- coding: utf-8 -*-
# Data: 2023/7/2
import cv2
img = cv2.imread("./1-1.jpg",cv2.IMREAD_UNCHANGED)
# 获取100行,100列像素点的值,有三个通道,依次是B、G、R
print(img[100,100])
# 按通道获取像素值
print(img[100,100,0])
print(img[100,100,1])
print(img[100,100,2])
# 修改100行,100列像素点的值
img[100,100] = [255,255,255]
print(img[100,100])
# 按通道设置
img[100,100,0] = 254
img[100,100,1] = 253
img[100,100,2] = 252
print(img[100,100])
# 修改10行到100行,50列到100列像素点的值
img[10:100,50:100] = [255,255,255]
# 按通道设置像素值
# img[10:100,50:100,0] = 255
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果:
E:\python\opencv\venv\Scripts\python.exe E:\python\opencv\main.py
[184 199 208]
184
199
208
[255 255 255]
[254 253 252]
Process finished with exit code 0
除了以上获取和修改像素值的方法,还有另一种方法,就是item和itemset:
示例:
# -*- coding: utf-8 -*-
# Data: 2023/7/2
import cv2
img1 = cv2.imread("./1-1.jpg",cv2.IMREAD_UNCHANGED)
# 彩色图像获取像素值,需要指定通道
print(img1.item(500,500,0))
print(img1.item(500,500,1))
print(img1.item(500,500,2))
# 彩色图像修改像素值
img1.itemset((500,500,0),255)
img1.itemset((500,500,1),255)
img1.itemset((500,500,2),255)
print(img1.item(500,500,0))
print(img1.item(500,500,1))
print(img1.item(500,500,2))
img2 = cv2.imread("./1-gray.jpg",cv2.IMREAD_UNCHANGED)
# 灰度图像获取像素值
print(img2.item(500,500))
# 灰度图像修改像素值
img2.itemset((500,500),255)
print(img2.item(500,500))
运行效果
E:\python\opencv\venv\Scripts\python.exe E:\python\opencv\main.py
167
191
197
255
255
255
190
255
Process finished with exit code 0
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
PHP中使用Skywalking
图像添加(高斯/椒盐/泊松/斑点)噪声
Towxml 是一个让小程序(微信/QQ)可以解析Markdown、HTML的解析库。能够使小程序完美解析Markdown内容。
在使用Python进行开发时,pip作为Python的包管理工具,是我们安装和管理Python库的重要工具。然而,有时候由于操作失误或其他原因,我们可能会不小心卸载了pip。这时,如何手动重新安装pip就显得尤为重要。本文将介绍两种手动安装pip的方法,帮助你快速恢复pip功能。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。