图像处理的一些操作(3)

news2025/1/18 3:29:03

图像处理

  • 13.创建主窗口与子图
    • 13.1导入模块 加载图片
    • 13.2创建窗口
    • 13.3创建子图数组
  • 14.定义png图像文件路径
  • 15.提取指定帧图像
  • 16.图像旋转
  • 17.伽马值校正
  • 18.检查图像对比度
  • 19.强度缩放
  • 20 . 绘制直方图
  • 20.三通道彩色直方图
  • 21.算子
    • 21.1Sobel
    • 22.2 prewitt
  • 22.滤波器
  • 23.绘制图形
    • 23.1画线
    • 23.2画多边形
    • 23.3画椭圆
    • 23.4画空心圆

13.创建主窗口与子图

13.1导入模块 加载图片

import matplotlib.pyplot as plt
from skimage import io
import matplotlib.pyplot as plt
img = io.imread(r"C:\Users\song\Desktop\2.jpg")

13.2创建窗口

使用plt.figure函数创建astronaut的窗口,并设置窗口大小为(8,8)

plt.figure(num='astronaut',figsize=(8,8))

13.3创建子图数组

使用plt.subplot函数创建了四个2x2的子图数组,并依次在不同的子图中显示图像及其通道

plt.subplot(2,2,1)
plt.title('origin image') # 第一幅图片标题
plt.imshow(img) # 绘制第一幅图片

plt.subplot(2,2,2)
plt.title('song image') # 第二幅图片标题
plt.imshow(img[:,:,1],plt.cm.gray)


plt.subplot(2,2,3)
plt.title('ya image') # 第三幅图片标题
plt.imshow(img[:,:,2],plt.cm.gray)

plt.subplot(2,2,4)
plt.title('ya image') # 第四幅图片标题
plt.imshow(img[:,:,2],plt.cm.gray)
plt.show()

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

14.定义png图像文件路径

from skimage import data_dir,io,color

def convert_gray(f):
    rgb=io.imread(f)
    
    return color.rgb2gray(rgb)

str=data_dir+'/*.png'
coll = io.ImageCollection(str,load_func=convert_gray)
io.imshow(coll[14])

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

15.提取指定帧图像

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 = r"E:\工坊\video\fireworks.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'))

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

16.图像旋转

from skimage import data_dir,io,transform,color,data
import matplotlib.pylab as plt
import numpy as np

img=io.imread('122.jpg')
plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(2, 2, 1)
plt.title('origin image')
print(img.shape)
plt.imshow(img)

plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(2, 2, 2)
plt.title('image1 60')
pl = transform.rotate(img,60,resize=True)
print(pl.shape)
plt.imshow(pl)

plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(2, 2, 3)
plt.title('image2 30')
pl = transform.rotate(img,30,resize=True)
print(pl.shape)
plt.imshow(pl)

plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(2, 2, 4)
plt.title('image3 180')
pl = transform.rotate(img,180,resize=False)
print(pl.shape)
plt.imshow(pl)

plt.show()

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

17.伽马值校正

from skimage import data,exposure,img_as_float
import matplotlib.pylab as plt
import numpy as np

img=io.imread('122.jpg')
gam1=exposure.adjust_gamma(img,1.4)
gam2=exposure.adjust_gamma(img,0.5)
gam3=exposure.adjust_gamma(img,0.2)
plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(1, 3, 1)
plt.title('gam1.4 image')
plt.imshow(gam1)

plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(1, 3, 2)
plt.title('gam0.5 image1')
plt.imshow(gam2)

plt.figure(num='astronaut', figsize=(8, 8))
plt.subplot(1, 3, 3)
plt.title('gam0.2 image1')
plt.imshow(gam3)
plt.show()

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

18.检查图像对比度

from skimage import exposure
img = io.imread(r"E:\工坊\photos\11.jpg")
result=exposure.is_low_contrast(img)
print(result)

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

19.强度缩放

import numpy as np
from skimage import exposure
image = np.array([51, 102, 153], dtype=np.uint8)
mat = exposure.rescale_intensity(image)

result=exposure.is_low_contrast(img)

print(result)
print(mat)

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

20 . 绘制直方图

import matplotlib.pyplot as plt
from skimage import io
img=io.imread(r"E:\工坊\photos\9.jpg")
plt.figure( "hist")
arr=img.flatten()
n, bins, patches = plt.hist(arr, bins=256, density=1, edgecolor='none', facecolor='lightblue')
plt.show()

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

20.三通道彩色直方图

from skimage import data
import matplotlib.pyplot as plt
img=io.imread(r"E:\工坊\photos\9.jpg")
ar=img[:,:,0].flatten()
plt.hist(ar, bins=256, density=True, facecolor='r', edgecolor='r')
ag=img[:,:,1].flatten()
plt.hist(ag, bins=256, density=True, facecolor='g', edgecolor='g')
ab=img[:,:,2].flatten()
plt.hist(ab, bins=256, density=True, facecolor='b', edgecolor='b')
plt.show()

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

21.算子

21.1Sobel

# sobel算子
from skimage import filters
import matplotlib.pyplot as plt
img = io.imread(r"E:\工坊\photos\9.jpg")
edges = filters.sobel(img)
plt.imshow(edges,plt.cm.gray)

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

22.2 prewitt

# prewitt算子
from skimage import filters
import matplotlib.pyplot as plt
img = io.imread(r"E:\工坊\photos\9.jpg")
edges = filters.scharr(img)
plt.imshow(edges,plt.cm.gray)

在这里插入图片描述

22.滤波器

from skimage import filters
import matplotlib.pyplot as plt
img= io.imread(r"E:\工坊\photos\5.jpg",as_gray=True)
filt_real, filt_img = filters.gabor(img,frequency=0.6)

plt.figure('gabor',figsize=(8,8))

plt.subplot(121)
plt.title('file_real')
plt.imshow(filt_real,plt.cm.gray)

plt.subplot(122)
plt.title("file_img")
plt.imshow(filt_img,plt.cm.gray)

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

23.绘制图形

23.1画线

from skimage import draw
import matplotlib.pyplot as plt
img=(r"E:\工坊\photos\6.jpg")
img = io.imread(img)
rr, cc = draw.line(1, 1000, 3500, 1000)
img[rr, cc] = 255
plt.imshow(img,plt.cm.gray)

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

23.2画多边形

import matplotlib.pyplot as plt
from skimage import io, draw
import numpy as np

# 读取图像并转换为灰度图像
img_path = r"E:\工坊\photos\6.jpg"
img = io.imread(img_path)

# 定义多边形的顶点坐标 顺时针
Y = np.array([800,800,500,200,200,500])
X = np.array([400,700,900,700,400,200])

# 绘制多边形并填充
rr, cc = draw.polygon(Y, X)
img[rr, cc] = 1
draw.set_color(img,[rr,cc],[225,245,250])

# 显示图像
plt.imshow(img, cmap=plt.cm.gray)
plt.axis('off')
plt.show()

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

23.3画椭圆

from skimage import draw,io
import matplotlib.pyplot as plt
img = r"E:\工坊\photos\6.jpg"
img = io.imread(img)
rr, cc=draw.ellipse(750, 750, 150, 400)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

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

23.4画空心圆

from skimage import draw,io
import matplotlib.pyplot as plt
img = r"E:\工坊\photos\6.jpg"
img = io.imread(img)
rr, cc=draw.circle_perimeter(900,900,300)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1658816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python实现背单词程序

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 背单词是学习英语的一个重要环节,它有很多好处,以下是其中一些主要的好处: 提高词汇量

数据结构之单链表的基本操作

目录 一.定义一个单链表 二.实现基本操作 1)链表的打印 2)链表的尾插 3)链表的头插 4)链表的尾删 5)链表的头删 6) 链表的查找 7)在指定位置之前插入数据 8)在指定位置之…

内网安全综合管理系统是什么 | 好用的内网安全管理系统有哪些

内网安全综合管理系统是指一种集成终端管理、网络管理、内容管理、资产管理等功能的综合性安全管理系统。它主要对内网上的主机进行统一安全管理,包括对网络主机用户操作实施监督控制,并对主机中的安全软件(如主机入侵监测系统、主机防火墙和…

国内首发 | CSA大中华区启动《AI安全产业图谱(2024)》调研

在人工智能(AI)技术的快速发展浪潮中,AI安全已成为全球关注的焦点。为应对AI安全带来的挑战,确保AI技术的健康发展,全球范围内的研究机构、企业和技术社区都在积极探索解决方案。 在这一背景下,CSA大中华区…

git 常用命令 git怎么撤销命令 持续更新中!!!!

基本流程 # 拉取仓库 git clone 仓库地址 # 拉取最新版本 git pull # 本地提交 git add . git commit -m "本次提交信息!" # 推送上云 git push分支 # 创建分支 git checkout -b cart # 删除本机的分支 git branch -d cart # 切换分支 本地切换到主分支…

将本地托管模型与 Elastic AI Assistant 结合使用的好处

作者:来自 Elastic James Spiteri, Dhrumil Patel 当今公共部门组织利用生成式人工智能解决安全挑战的一种方式。 凭借其筛选大量数据以发现异常模式的能力,生成式人工智能现在在帮助团队保护其组织免受网络威胁方面发挥着关键作用。 它还可以帮助安全专…

LayaAir引擎全面支持淘宝小游戏、小程序、小部件的发布

在最新的3.1版本和2.13版本中,LayaAir引擎已经全面支持了淘宝小游戏、小程序和小部件的开发和发布。这一重大更新,标志着LayaAir引擎与电商巨头阿里巴巴旗下的淘宝平台形成生态合作,在为广大开发者提供更加强大、高效的跨平台开发工具和解决方…

train_gpt2_fp32.cu

源程序 llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <assert.h> #include <float.h> #include <string.h> #include…

06.命令的组合使用

命令的组合使用 1.查询当前整个系统每个进程的线程数 我们经常遇到这样的问题&#xff0c;比如某台服务器的CPU 使用率飙升&#xff0c;通过top命令查看是某个程序&#xff08;例如java&#xff09;占用的cpu比较大&#xff0c;现在需要查询java各个进程下的线程数情况。可以通…

各种依赖注入和分层解耦

分层解耦 三层架构 controller:控制层&#xff0c;接收前端发送的请求&#xff0c;对请求进行处理&#xff0c;并响应数据 service:业务逻辑层&#xff0c;处理具体业务的逻辑 dao:数据访问&#xff0c;负责数据访问操作&#xff0c;包括数据的增、删、改、查 流程为&…

初阶C语言(8) - 实用的调试技巧

1. 什么是bug? bug 是计算机领域专业术语&#xff0c;是计算机在硬件、软件、协议和系统安全策略上存在的缺陷&#xff0c;攻击者能够在未授权情况下访问的危害&#xff0c;世界最早的一批程序设计师之一&#xff0c;美国的葛丽丝霍波在调试设备时出现故障&#xff0c;拆开继电…

MySQL——变量的定义与使用

新建链接&#xff0c;自带world数据库&#xff0c;里面自带city表格。 DQL # MySQL变量的定义与使用 #1、不允许数字作为开头 #2、只能用_或$符号&#xff0c;不允许使用其他符号 #3、不允许使用关键字或保留字 set userName小可爱; select userName; #标识符只影响当前查询#…

python3.12.0 在Linux 制作镜像包 部署到docker 全过程

项目结构&#xff1a; 比如&#xff0c;在pycharm里需要运行 themain.py 1、上传Linux的目录结构&#xff1a; Dockerfile 文件需要制作&#xff1a; 这里是关键&#xff1a; #基于的基础镜像 FROM python:3.12.0 #代码添加到code文件夹 ADD ./EF_NFCS /code #设置code文…

多客陪玩系统源码APP小程序H5陪玩开发伴游源码游戏陪玩平台源码陪玩平台开发约单源码线下陪玩接单平台app小程序H5源码游戏陪玩app小程序H5开发

出售成品陪玩app小程序H5源码&#xff0c;免费搭建部署和售后服务&#xff0c;并提供源码二开、定制开发等相关服务。 一、陪玩app源码的功能介绍 1、语音聊天: 陪玩app小程序H5源码用户随时创建语音聊天室&#xff0c;实现多用户上麦功能&#xff0c;提高互动聊天体验。 2、游…

说句心里话,别轻易把RFM模型写进简历!

大家好&#xff0c;我是阿粥 我看过很多分析师的简历。 这么多年过去了&#xff0c;简历项目经历里&#xff0c;仍然有不少提到用SQL或者Python进行RFM建模。 项目细节描述各有千秋&#xff0c;但核心逻辑大体绕不开“基于Python对用户数据进行RFM建模&#xff0c;分成x类人群以…

Elasticsearch 索引、类型、文档、分片与副本等核心概念介绍

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《洞察之眼&#xff1a;ELK监控与可视化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Elasticsearch简介 2、分布式搜索引擎的工作原理…

深入探索数据链路层:网络通信的基石

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统❤ 前言 在网络通信的宏伟世界中&#xff0c;数据链路层扮演着至关重要的角色。它位于物理层和网络层之间&#xff0c;不仅直接…

126.删除链表的倒数第N个节点(力扣)

题目描述 代码解决&#xff08;双指针&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, Li…

深入探讨利用大型语言模型的力量的策略 (LLMs)

Note: 提示词工程是一门融合了艺术和科学的学科——它既是对技术的理解&#xff0c;也是对创造力和战略思维的理解。 本文为对LLMS策略分享内容学习后的整理&#xff0c;尝试抛开网上广泛讨论和记录的传统提示词工程技术&#xff0c;展示通过实验学到的新见解&#xff0c;以及…

片冰机工作原理

片冰机工作原理 1、制冰用的水需要加盐(行话叫做加药)至于多少量。看制冰量多少调制泵(柱塞泵)自动调整。 2、制冰机主体分两腔体外腔体内盘的一定密度的铜管。专业术语叫(蒸发腔)就是俗话讲的制冷的东西。 3、外腔体内是一个很规则的圆不锈钢腔体&#xff0c;中心有一三叶刮…