skimage图像处理(六)

embedded/2024/10/21 10:00:56/

在图像中绘制图形

绘制线条

格式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)

 设置圆区域的颜色为蓝色

img[rr, cc] = [0, 0, 255]

 显示图像

plt.imshow(img)

plt.show()

显示效果:

绘制矩形

导入skimage库中的drawdataio模块,导入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库中的drawdataio模块,导入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()

显示效果:


http://www.ppmy.cn/embedded/41926.html

相关文章

根据标签最大层面ROI提取原始图像区域(二)

今天要实现的任务还是提取肿瘤的感兴趣区域。 有两个文件,一个是nii的原始图像文件,一个是nii的标签文件。我们要实现的是:在标签文件上选出最大层面,然后把最大层面的ROI映射到原始图像区域,在原始图像上提裁剪出ROI…

css中用来设置表格的一些样式属性

在CSS中我们用来给表格设置样式的有以下属性: 1. 基本表格样式 边框:使用border属性可以为表格添加边框。内边距:padding属性用于增加单元格内的空间。外边距:margin属性用于控制表格与其他元素之间的距离。 2. 表格结构样式 …

Nginx-04-Docker Nginx

Docker Nginx 实战 HTTP 服务 Nginx 的最大作用,就是搭建一个 Web Server。 有了容器,只要一行命令,服务器就架设好了,完全不用配置。 运行官方 image $ docker container run \-d \-p 8080:80 \--rm \--name mynginx \nginx…

UVM寄存器模型——手写Ralf问题debug

寄存器模型是UVM中至关重要的一部分,如果没有寄存器模型,那么验证平台对于DUT内寄存器的访问方式将十分有限,对DUT运行状态的把控也会变得更为复杂。 在验证过程中,scoreboard或者其他验证组件经常需要了解当前时间某个寄存器的值…

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(76)

1. 题目解析 题目链接:LCR 091. 粉刷房子 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 1. 状态定义 在解决这类问题时,我们首先需要根据题目的具体要求来定义状态。针对房屋粉刷问题&#…

【个人成长】Fitten Code 测试案例分析

JS,Fitten Code 当插件,然后在代码分析的时候,有些小感悟,大模型写代码的思路,正常我理解的代码思路。 输入代码 (item.score* 100).toFixed(0)Prompt 得出的结果 5分,如果超过100按100算输出结果 con…

代码审计-php篇之某CRM系统多处sql注入

🌟 ❤️ 作者:yueji0j1anke 首发于公号:剑客古月的安全屋 字数:3516 阅读时间: 35min 声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果…

Lora训练Windows[笔记]

一. 使用kohya_ss的GUI版本(https://github.com/bmaltais/kohya_ss.git) 这个版本跟stable-diffusion-webui的界面很像,只不过是训练模型专用而已,打开的端口同样是7860。 1.双击setup.bat,选择1安装好xformers,pytorch等和cuda…