python使用opencv对图像的基本操作

ops/2024/9/24 4:21:10/

opencv__0">opencv 读取图片

1.skimage图像的读取

from skimage import io
img = io.imread('dog.jpg')
io.imshow(img) #显示图片

运行结果:
在这里插入图片描述
注:img = io.imread(‘dog.jpg’,as_gray=True)中的as_gray=True是是图片变成灰色。

运行结果:
在这里插入图片描述

2.读取skimage里面的图片

from skimage import io,data
img=data.chelsea() #chelsea是skimage库里面的图片
io.imshow(img)

运行结果:
在这里插入图片描述
注:另一些图片名称

在这里插入图片描述

3.查找skimage图片示例

from skimage import data_dir #导入Scikit-image库中的data_dir属性。
print(data_dir)#打印data_dir

运行结果:
在这里插入图片描述

4.读取图片(图片形式为二进制)

from skimage import data_dir,data,io
img1 = data.chelsea()
img2 = io.imread(data_dir+'/chelsea.png')
print(img2)

运行结果:
在这里插入图片描述

5.保存图片

from skimage import io,data
img=data.chelsea()
io.imshow(img)
io.imsave('D:\cat0.jpg',img) #imsave是保存图片的意思

运行结果:

在这里插入图片描述

6.显示图片属性

from skimage import io,data
img=data.chelsea()
io.imshow(img)
print(type(img)) #显示类型
print(img.shape) #显示尺寸
print(img.shape[0])#显示图片宽度
print(img.shape[1])#显示图片高度
print(img.shape[2])#显示图片通道数
print(img.size)    #显示图片总像素个数
print(img.max())   #显示图片最大像素值
print(img.min())   #显示图片最小像素值
print(img.mean())  #显示图片像素平均值

运行结果:

在这里插入图片描述

7.将单通道图片变成三通道图片

*图片像素的访问

from skimage import io,data 
img=data.chelsea()
pixel=img[20,30,1]
print(pixel)

注:从图像 img 中提取位于第 20 行、第 30 列的像素点的第二个颜色通道(通常是绿色)的值。在 RGB 图像中,每个像素由三个值组成,分别代表红色、绿色和蓝色通道的颜色强度。
运行结果:

在这里插入图片描述
*用红色/绿色/蓝色通道提取

from skimage import io,data
img=data.chelsea()
R=img[:,:,0] #这里 img[:,:,0] 表示选取所有行和列的第一个通道,即红色通道:1表示绿色,2表示蓝色。
io.imshow(R)

运行结果:
在这里插入图片描述

8.增加噪点

#椒盐噪点:
from skimage import io,data
import numpy as np
img=data.chelsea()
#加载图像的尺寸
rows,cols,dims=img.shape
#使用循环执行50000(噪点数量)
for i in range(50000):x=np.random.randint(0,rows)y=np.random.randint(0,cols)img[x,y,:]=145 #将图像 img 中位于 (x, y) 坐标的所有通道的像素值设置为 145。
io.imshow(img)
io.imsave('D:\cat1.jpg',img) #保存图片

运行结果:
在这里插入图片描述

9.使用高斯模糊滤波对图片进行降噪

#高斯模糊滤波
import cv2
#读取图像
image = cv2.imread(r'D:\cat1.jpg')
blurred_image = cv2.GaussianBlur(image,(5,5),0)
#使用 5x5 的高斯核对输入图像进行模糊处理,并将处理后的图像存储在 blurred_image 变量中。
cv2.imshow('Blurred Image',blurred_image)
cv2.waitKey(0) #等待用户按键
cv2.destroyAllWindows() #销毁窗口

注:当为 0 时,OpenCV 会自动计算标准差。
运行结果
在这里插入图片描述

10.使用中值滤波对图片进行降噪

#中值滤波
import cv2image = cv2.imread(r'D:\cat1.jpg')
#是中值模糊的核尺寸,它决定了模糊的范围。这里使用的是 5x5 的核。
median_blurred_image = cv2.medianBlur(image, 5)
cv2.imshow('Median Blurred Image', median_blurred_image)#显示图像窗口
cv2.waitKey(0)#等待用户按键
cv2.destroyAllWindows()#销毁窗口

运行结果

在这里插入图片描述

11.将图片进行切割

from skimage import io,data
img=data.chelsea()
roi=img[90:180,90:200,:] #进行切割
io.imshow(roi)

注:90:180 表示提取的区域的行范围;90:200表示提取的列范围;(:)表示颜色通道:红、绿、蓝。
运行结果:
在这里插入图片描述

12.随机生成噪点

import cv2
import numpy as np
import random
img = cv2.imread('33.png')
ingInfo = img.shape
h = ingInfo[0] - 1 #防止早点超出图像范围
w = ingInfo[1] -1
temp = 2500 # 噪声点的个数
#使用循环,并执行temp次
for i in range(0, temp):
#在循环的每次迭代中,这行代码检查一个随机整数是否是偶数。if random.randint(1, temp) % 2 == 0:img[random.randint(0, h), random.randint(0, w)] = (255, 255, 255)#白色像素
#随机数不是偶数,这行代码执行类似的操作,但在随机选择的像素点处设置是黑色像素(0, 0, 0)。if random.randint(1, temp) % 2 != 0:img[random.randint(0, h), random.randint(0, w)] = (0, 0, 0)
cv2.imshow('33', img)
cv2.imwrite('noise.jpg', img)
cv2.waitKey(0)
注:random.randint(1, temp)指的是生成的随机整数在1-temp之间。

运行结果:

在这里插入图片描述


http://www.ppmy.cn/ops/22839.html

相关文章

Beyond Chain-of-Thought: A Survey of Chain-of-X Paradigms for LLMs论文阅读笔记(未完待续)

地址:https://arxiv.org/html/2404.15676v1 一些论文合集:https://github.com/atfortes/Awesome-LLM-Reasoning 背景 思维链 (Chain-of-Thought,CoT) 是一种被广泛采用的提示方法,它激发了大型语言模型 …

迭代器模式

迭代器模式 文章目录 迭代器模式什么是迭代器模式通过示例了解迭代器模式迭代器模式的核心思想和优点如下: 什么是迭代器模式 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示 通过示例了解迭代器模式 迭…

OpenCV实现霍夫变换

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 如何实现边缘检测器 下一篇 :OpenCV 实现霍夫圆变换 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 HoughLines()和 HoughLinesP()检测图像中的线条。…

基于 Spring Boot 博客系统开发(二)

基于 Spring Boot 博客系统开发(二) 本系统是简易的个人博客系统开发,为了更加熟练地掌握SprIng Boot 框架及相关技术的使用。🌿🌿🌿 基于 Spring Boot 博客系统开发(一)&#x1f4…

上市企业数字赋能指数数据集-2001到2022年(TF-IDF)

01、数据简介 上市公司数字赋能指数是一个用来衡量上市公司利用数字技术提高业务能力和效率的指标。这个指数反映了上市公司利用大数据、云计算和人工智能等数字技术,高效地利用商业资源和信息,并扩展供应关系的能力。市公司数字赋能指数是一种综合性的…

一文汇编荆门市与掇刀区高新技术企业、科技型中小企业、孵化器、众创空间等各项科技类奖补政策

荆门市与掇刀区高新技术企业、科技型中小企业、孵化器、众创空间等各项科技类奖补政策 CALL me 见 个人 简介 (一)市级政策 1、入驻荆楚科创城企业扶持政策 (1)对入驻科创城的各类科创主体,根据其实际需要提供办…

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第三章)键控流水灯实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 适用于板卡型号: 紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano) 一:…

使用 Flask 和 WTForms 构建一个用户注册表单

在这篇技术博客中,我们将使用 Flask 和 WTForms 库来构建一个用户注册表单。我们将创建一个简单的 Flask 应用,并使用 WTForms 定义一个注册表单,包括用户名、密码、确认密码、邮箱、性别、城市和爱好等字段。我们还将为表单添加验证规则&…