skimage图像处理(六)

在图像中绘制图形

绘制线条

格式rr,cc = draw.line()

from skimage import draw,data,io

import matplotlib.pyplot as plt

img=io.imread('c.jpg')

rr,cc = draw.line(6,150,660,450)

draw.set_color(img,rr,cc,0,0,225) #绘制颜色

plt.imshow(img,plt.cm.gray)

显示效果:

绘制面性圆

格式:rr, cc = draw.disk((), , shape=img.shape)

from skimage import io, draw

import matplotlib.pyplot as plt

import numpy as np

读取图像

img = io.imread('c.jpg')

获取圆的坐标

rr, cc = draw.disk((150, 150), 120, shape=img.shape)

设置圆区域的颜色为蓝色

imgrr, cc = 0, 0, 255

显示图像

plt.imshow(img)

plt.show()

显示效果:

绘制矩形

导入skimage库中的draw、data和io模块,导入matplotlib.pyplot,导入numpy库,通常简称为np,用于数组计算

from skimage import draw,data,io

import matplotlib.pyplot as plt

import numpy as np

读取图片

img=io.imread('c.jpg')

定义矩形在图像上的x、y轴

y=np.array(10,10,60,60)

x=np.array(200,400,400,200)

使用draw.polygon函数根据y和x坐标生成矩形的行和列索引

rr,cc = draw.polygon(y,x)

draw.set_color函数将多边形覆盖的像素的颜色设置为红色。

draw.set_color(img,rr,cc,225,0,0)

plt.imshow(img,plt.cm.gray)

显示效果:

绘制六边形

导入skimage库中的draw、data和io模块,导入matplotlib.pyplot,导入numpy库,通常简称为np,用于数组计算

from skimage import draw,data,io

import matplotlib.pyplot as plt

import numpy as np

读取图片

img=io.imread('c.jpg')

定义六边形在图像上的x、y轴

y=np.array(400, 200,200,400, 600,600)

x=np.array(100, 250, 450,600, 450,250)

使用draw.polygon函数根据y和x坐标生成六边形的行和列索引

rr,cc = draw.polygon(y,x)

draw.set_color函数将多边形覆盖的像素的颜色设置为红色。

draw.set_color(img,rr,cc,225,0,0)

plt.imshow(img,plt.cm.gray)

效果显示:

绘制椭圆

格式:rr,cc = draw.ellipse()

from skimage import draw,data,io

import matplotlib.pyplot as plt

读取图像

img=io.imread('c.jpg')

rr,cc = draw.ellipse(150,150,140,80)

draw.set_color函数将多边形覆盖的像素的颜色设置为蓝色。

draw.set_color(img,rr,cc,0,0,225)

plt.imshow(img,plt.cm.gray)

效果显示:

绘制线条圆

from skimage import draw,data,io

import matplotlib.pyplot as plt

读取图像

img=io.imread('c.jpg')

使用draw.circle_perimeter函数生成一个圆形边框的行和列索引。这个圆形边框的中心坐标是(450, 550),半径是100像素。

rr,cc = draw.circle_perimeter(450,550,100)

使用draw.set_color函数将圆形边框的颜色设置为红色。这里的颜色是用RGB值 [225, 0, 0] 表示的,其中225表示红色通道的最大强度,0表示绿色和蓝色通道的最小强度。

draw.set_color(img,rr,cc,225,0,0)

显示图像

plt.imshow(img,plt.cm.gray)

效果显示:

图像的平移与镜像

图像的平移

from skimage import io, transform

import matplotlib.pyplot as plt

img = io.imread("c.jpg")

绘制子图片

plt.subplot(1,2,1)

plt.title('origin image')

plt.imshow(img,plt.cm.gray)

plt.axis('off')

使用 transform.warp 函数进行平移

translation = (400, 200)

img1 = transform.warp(img,transform.AffineTransform(translation=translation))

plt.subplot(1,2,2)

plt.title('Translate')

plt.imshow(img1, plt.cm.gray)

plt.axis('off')

plt.show()

显示效果:

图像的镜像

镜像

import numpy as np

from skimage import io, color

import matplotlib.pyplot as plt

读取图像

img = io.imread("c.jpg",plt.cm.gray)

水平镜像

h = np.fliplr(img)

垂直镜像

w = np.flipud(img)

显示原始图像和镜像图像

plt.figure(figsize=(10, 5))

绘制子图片

plt.subplot(1, 3, 1)

plt.title('Original Image')

plt.imshow(img,plt.cm.gray)

plt.axis('off')

plt.subplot(1, 3, 2)

plt.title('Horizontal Mirror')

plt.imshow(h,plt.cm.gray)

plt.axis('off')

plt.subplot(1, 3, 3)

plt.title('Vertical Mirror')

plt.imshow(w,plt.cm.gray)

plt.axis('off')

显示图像

plt.show()

显示效果:

相关推荐
2601_962387825 天前
Python CUDA 编程 - 2 - Numba 简介
python·numpy·cuda·jit编译器·numba
2601_962295995 天前
湖南码界领航教育科技有限公司:Python数据分析进阶,统计与可视化
numpy·pandas·统计·数据可视化·python数据分析
半摆烂日常7 天前
自建WMS和买成品:三年成本对比
大数据·服务器·数据库·python·深度学习·低代码·numpy
AndrewHZ7 天前
图像处理入门027 | 查找表(LUT)加速——把像素级操作从“每次算一遍“变成“只算 256 次“
图像处理·opencv·numpy·滤镜·查找表·lut
张宇Joaquin11 天前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
方知我11 天前
NumPy一小时速成
开发语言·python·numpy
典典分享指南11 天前
Excel SUMIFS 跨表汇总实战:多表条件求和的完整指南
django·flask·numpy·pyqt·fastapi
泡干脆面就番茄18 天前
NumPy 科学计算完全指南:从数组创建到广播机制
python·numpy
战略性的菠萝21 天前
学习笔记-Numpy知识
python·numpy
典典分享指南22 天前
GEO 实战:从挖搜索词到监控 AI 收录,一套内容流水线怎么搭
开发语言·青少年编程·numpy·erlang