赞
踩
from skimage import io,color
img = io.imread('lbxx.jpg')
img_gray = color.rgb2gray(img) #将rgb图像转换成gray图像
io.imshow(img_gray)
运行结果:
from skimage import io,color
img = io.imread('lbxx.jpg')
img_hsv = color.rgb2hsv(img) #将rgb图像转换成hsv图像
io.imshow(img_hsv)
运行结果:
from skimage import io,color
img = io.imread('lbxx.jpg')
img_lab = color.lab2rgb(img) #将lab图像转换成rgb图像
io.imshow(img_lab)
运行结果:
from skimage import io,color
img = io.imread('lbxx.jpg')
gray = color.hsv2rgb(img) #将hsv图像转换成rgb图像
io.imshow(gray)
运行结果:
from skimage import io,color
img = io.imread('lbxx.jpg')
img_lab = color.rgb2lab(img) #将rgb图像转换成lab图像
io.imshow(img_lab)
注:
(1).HSV(hue,saturation,value)表示色相、饱和度和亮度。
(2).Lab中的L分量用于表示像素的亮度,取值范围是[0,100],表示从纯黑到纯白;
a表示从红色到绿色的范围,取值范围是[127,-128];
b表示从黄色到蓝色的范围,取值范围是[127,-128]。
运行结果:
from skimage import io,color
img = io.imread('lbxx.jpg')
hsv=color.convert_colorspace(img,'RGB','HSV')
#convert是颜色空间,colorspace是颜色通道
io.imshow(hsv)
注:convert是颜色空间,colorspace是颜色通道。
运行结果:
from skimage import io,data,color import numpy as np img=io.imread('lbxx.jpg') img_gray=color.rgb2gray(img)#将RGB图像转换为灰度图像。 rows,cols=img_gray.shape labels=np.zeros([rows,cols]) #这个数组中的每个元素都被初始化为零。 for i in range(rows): for j in range(cols): if(img_gray[i,j]<0.4): labels[i,j]=0 elif(img_gray[i,j]<0.75): labels[i,j]=1 else: labels[i,j]=2 dst=color.label2rgb(labels) io.imshow(dst)
注:for循环遍历灰度图像的每个像素,根据其灰度值将标签数组的相应位置赋值为0、1或2。具体来说,灰度值小于0.4的像素被标记为0,灰度值在0.4到0.75之间的像素被标记为1,灰度值大于0.75的像素被标记为2。
运行结果:
from skimage import data import matplotlib.pyplot as plt img=io.imread('lbxx.jpg') plt.figure(num='astronaut',figsize=(8,8)) #创建一个名为astronaut的窗口,并设置大小 plt.subplot(2,2,1) #将窗口分为两行两列四个子图,则可显示四幅图片 plt.title('lbxx') #标题 plt.imshow(img) #显示图片 plt.subplot(2,2,2) plt.title('R') plt.imshow(img[:,:,0],plt.cm.gray) plt.axis('off') plt.subplot(2,2,3) plt.title('G') plt.imshow(img[:,:,1],plt.cm.gray) plt.axis('off') plt.subplot(2,2,4) plt.title('B') plt.imshow(img[:,:,2],plt.cm.gray) plt.axis('off') #不显示坐标尺寸 plt.show() #检测、显示窗口
运行结果:
import skimage.io as io
from skimage import data_dir,data
# img1 = io.imread('lbxx.jpg')
str = data_dir+'/*.png'
#创建了一个ImageCollection对象,包含指定路径下所有匹配的图像。
coll = io.ImageCollection(str)
print(len(coll))
io.imshow(coll[1])
注:str = data_dir + '/*.png’这行代码定义了一个字符串,用于指定包含PNG图像的目录。
运行结果:
from skimage import data_dir,io,color
def as_gray(f):
rgb=io.imread('lbxx.jpg')
return color.rgb2gray(rgb)
str = data_dir + '/*.png'
coll = io.ImageCollection(str,load_func=as_gray)
io.imshow(coll[0])
注:读取一个目录中的所有PNG图像,将它们转换为灰度图像,并显示其中的第一张灰度图像。
*灰度化的方法:
as_gray=True
camp = gray/plt.cm.gray
color.rgb2gray(img)
Plt.cm.gray
运行结果:
import cv2 from skimage import io import os class AVILoader: def __init__(self, video_file): self.video_file = video_file self.cap = cv2.VideoCapture(self.video_file) def __call__(self, frame): self.cap.set(cv2.CAP_PROP_POS_FRAMES, frame) ret, frame = self.cap.read() if ret: return cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) else: return None #传入视频文件路径。 video_file = 'll.mp4' av_loader = AVILoader(video_file) frames = range(0, 100, 20) output_folder = 'frames' os.makedirs(output_folder, exist_ok=True) # 保存每一帧为图像文件 for frame in frames: img = av_loader(frame) if img is not None: filename = os.path.join(output_folder, f'frame_{frame}.jpg') io.imsave(filename, img) io.imshow(img) # 显示图像 io.show() # 显示图像窗口 # 创建图像集合 ic = io.ImageCollection(os.path.join(output_folder, '*.jpg')) # 输出图像集合
注:cv2:OpenCV库,用于视频处理; io:skimage库的输入输出模块,用于图像的读写和显示; os:用于操作文件和目录。
运行结果:
from skimage import io,transform,color
import numpy as np
def as_gray(f):
rgb = io.imread(f)
gray=color.rgb2gray(rgb)
dst=transform.resize(gray,(256,256))
return dst
img1 = "C:/1/tupian"
str=img1 + '/*.jpg'
coll = io.ImageCollection(str,load_func=as_gray)
for i in range(len(coll)):
io.imsave(r'C:/1/tupian'+np.str(i)+'.png',coll[i])
注:
skimage.io(用于图像的输入输出)
skimage.transform(用于图像变换)
skimage.color(用于图像颜色空间转换)
numpy(用于数学运算和数组操作)
运行结果:
#1.改变图片的尺寸resize(200,200) from skimage import transform import matplotlib.pyplot as plt img=io.imread('33.png') plt.subplot(221) plt.title('resize') dst =transform.resize(img, (986,772)) plt.imshow(dst,plt.cm.gray) plt.subplot(222) plt.title('before resize') dst =transform.resize(img, (450,350)) plt.imshow(dst,plt.cm.gray) plt.subplot(223) plt.title('before resize') dst =transform.resize(img, (150,120)) plt.imshow(dst,plt.cm.gray) plt.subplot(224) plt.title('before resize') dst =transform.resize(img, (25,60)) plt.imshow(dst,plt.cm.gray) plt.show()
注:pyplot模块提供了创建和定制图表的函数。
运行结果:
#2.按比例缩放 from skimage import transform,data,io import matplotlib.pyplot as plt img=io.imread('lbxx.jpg') plt.subplot(2,2,1) plt.title('1') plt.imshow(img) plt.subplot(2,2,2) plt.title('2') dst=transform.rescale(img,0.1) plt.imshow(dst) plt.subplot(2,2,3) plt.title('3') dst=transform.rescale(img,0.5) plt.imshow(dst) plt.subplot(2,2,4) plt.title('4') dst=transform.resize(img,2) plt.show(dst)
运行结果:
from skimage import transform import matplotlib.pyplot as plt img=io.imread('lbxx.jpg') print(img.shape) img1=transform.rotate(img, 60) print(img1.shape) img2=transform.rotate(img, 30,resize=True) print(img2.shape) plt.figure('1') plt.subplot(121) plt.title('60') plt.imshow(img1,plt.cm.gray) plt.subplot(122) plt.title('30') plt.imshow(img2,plt.cm.gray) plt.show()
注:skimage.transform.rotate函数将img图像旋转60度。旋转后的图像被存储在变量img1。
运行结果:
from skimage import io,exposure,img_as_float,data import matplotlib.pyplot as plt img=io.imread('lbxx.jpg') gam1=exposure.adjust_gamma(img, 2) gam2=exposure.adjust_gamma(img, 0.5) plt.figure('adjust_gamma',figsize=(8,8)) plt.subplot(131) plt.title('1') plt.imshow(img,plt.cm.gray) plt.axis('off') plt.subplot(132) plt.title('2') plt.imshow(gam1,plt.cm.gray) plt.axis('off') plt.subplot(133) plt.title('0.5') plt.imshow(gam2,plt.cm.gray) plt.axis('off') plt.show()
注:exposure模块包含了一系列用于调整图像曝光度的函数,img_as_float函数用于将图像转。换为浮点数表示。
运行结果:
from skimage import io,exposure,img_as_float,data import matplotlib.pyplot as plt img=io.imread('ww.jpg') log1=exposure.adjust_log(img) plt.figure('adjust_log',figsize=(8,8)) #log对数函数调整 plt.subplot(121) plt.title('origin image') plt.imshow(img,plt.cm.gray) plt.axis('off') plt.subplot(122) plt.title('log') plt.imshow(log1,plt.cm.gray) plt.axis('off') plt.show() io.imsave('D:\ww1.jpg',img)
注:使用skimage.exposure.adjust_log函数将img图像调整为对数形式。调整后的图像被存储在变量log1中。
运行结果:
#判断图像对比度是否偏低
from skimage import io,exposure
img = io.imread("D:\ww1.jpg")
result=exposure.is_low_contrast(img)
print(result)
注:skimage.exposure.is_low_contrast函数来判断img图像的对比度是否偏低。函数返回一个布尔值,如果对比度偏低,则返回True;否则返回False。
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。