python-opencv 培训课程作业
python-opencv 培训课程作业
作业一:
第一步:读取 res 下面的 flower.jpg,读取彩图,并用 opencv 展示
第二步:彩图 -> 灰度图
第三步:反转图像:最大图像灰度值减去原图像,即可得到反转的图像
第四步:用 plt 对比展示原图、灰度图、反转图 plt.subplot()
import os
import cv2
import matplotlib.pyplot as plt
import numpy as np
#默认加载彩图
path=r'flower.jpg'# imread(path,way)
#way=0 灰度图。way=1 彩图
#默认彩图#cv2.COLOR_BGR2GRAY#cv2.COLOR_BGR2RGB
#cv2.COLOR_BGR2HSV,HSV-色调、饱和度、亮度def cv_show(name,img):cv2.imshow(name,img)#cv2.waitKey(0),接收0,表示窗口暂停cv2.waitKey(0)#销毁所有窗口cv2.destroyAllWindows()
# 第一步:读取 res 下面的 flower.jpg,读取彩图,并用 opencv 展示
img=cv2.imread(path)cv_show('flower',img)# 彩图 -> 灰度图
img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 反转图像:最大图像灰度值减去原图像,即可得到反转的图像max_gray_value=img_gray.max()
print(max_gray_value)covert_img=max_gray_value-img# 用 plt 对比展示原图、灰度图、反转图 plt.subplot()plt.subplot(131)
img = img[:,:, ::-1]
plt.imshow(img)plt.title('original')plt.subplot(132)
plt.imshow(img_gray,'gray')
plt.title('img_gray')
plt.subplot(133)
covert_img=covert_img[:,:, ::-1]
plt.imshow(covert_img)
plt.title('covert_img')plt.show()
作业二:
第一步:第一步:读取 res 下面的 girl.jpg,读取彩图,,并转换为rbg格式展示
第二步:灰度化处理,并展示
第三步:灰度图二值化处理,像素值大于50,设置为255,小于50,设置为0
第四步:伽马变换:通过幂运算来调整图像的对比度和亮度,每个像素值取 0.8 次幂,参考 math.pow(gamma[i][j], 0.8),并展示最终结果
第五步:对数变换:通过对每个像素点的灰度值进行对数计算,以增强图像中低灰度级的细节,增强图像的整体对比度,对每个像素求 3 * math.log(1 + log[i][j]),并展示最终结果
代码如下:
import cv2
import copy
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as npmpl.rcParams["font.sans-serif"] = ["SimHei"] # 指定默认字体 SimHei 黑体# 读入原始图像 res/girl.jpg,并用展示 rgb
path=r'girl.jpg'def cv_show(name,img):cv2.imshow(name,img)#cv2.waitKey(0),接收0,表示窗口暂停cv2.waitKey(0)#销毁所有窗口cv2.destroyAllWindows()
# 第一步:读取 res 下面的 girl.jpg,读取彩图,并转换为rbg格式展示
img=cv2.imread(path)img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)cv_show('original',img)
cv_show('girl_rgb',img_rgb)
#cv_show('girl_rgb',img)
# 灰度化处理,并展示
img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)cv_show('girl_gray',img_gray)
# 二值化处理# gray是灰度图,像素值大于50,设置为255,小于50,设置为0ret,dst1=cv2.threshold(img_gray,50,255,cv2.THRESH_BINARY)
cv_show('girl_gray_binary',dst1)# 伽马变换:通过幂运算来调整图像的对比度和亮度,每个像素值取 0.8 次幂,参考 math.pow(gamma[i][j], 0.8),并展示最终结果
rows = img.shape[0] # rows、cols 行列数,rows 也就是高度
cols = img.shape[1]# 设定伽马值
gamma = 0.8# 对图像进行伽马变换
gamma_correction = np.power(img_gray / 255.0, gamma)
gamma_correction = (gamma_correction * 255).astype(np.uint8)
cv_show('girl_gamma_correctiony',gamma_correction)# 对数变换:通过对每个像素点的灰度值进行对数计算,以增强图像中低灰度级的细节,增强图像的整体对比度,对每个像素求 3 * math.log(1 + log[i][j]),并展示最终结果
for i in range(rows):for j in range(cols):img_gray[i][j]= 3 * math.log(1 + img_gray[i][j])# print(img_gray[i][j])cv_show('log_img',img_gray)






相关文章:
python-opencv 培训课程作业
python-opencv 培训课程作业 作业一: 第一步:读取 res 下面的 flower.jpg,读取彩图,并用 opencv 展示 第二步:彩图 -> 灰度图 第三步:反转图像:最大图像灰度值减去原图像,即可得…...
【Go入门】并发
【Go入门】并发 有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。 goroutine goroutine是Go并行设计的核心。goroutine说到底其实就是协程,…...
Java虚拟机运行时数据区结构详解
Java虚拟机运行时数据区结构如图所示 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 多线程切换时,为了能恢复到正确的执行位置,每条线程…...
华为OD机试 - 转盘寿司(Java JS Python C)
目录 题目描述 输入描述 输出描述 用例 题目解析 JS算法源码 Java算法源码...
【ATTCK】MITRE Caldera-emu插件
CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。 通过CALDERA工具,安全…...
23111709[含文档+PPT+源码等]计算机毕业设计基于Spring Boot智能无人仓库管理-进销存储
文章目录 **软件开发环境及开发工具:****功能介绍:****论文截图:****数据库:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 软件开发环境及…...
SDUT OJ《算法分析与设计》贪心算法
A - 汽车加油问题 Description 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。 对于给定的n和k个加油站位置,计算最少加油次数。 I…...
金融业务系统: Service Mesh用于安全微服务集成
随着云计算的不断演进,微服务架构变得日益复杂。为了有效地管理这种复杂性,人们开始采用服务网格。在本文中,我们将解释什么是Service Mesh,为什么它对现代云架构至关重要,以及它是如何解决开发人员今天面临的一些最紧…...
Linux下快速确定目标服务器支持哪些协议和密码套件
实现原理是利用TLS协议的特点和握手过程来进行测试和解析响应来确定目标服务器支持哪些TLS协议和密码套件。 在TLS握手过程中,客户端和服务器会协商并使用相同的TLS协议版本和密码套件来进行通信。通过发送特定的握手请求并分析响应,可以确定目标服务器…...
LeetCode100122. Separate Black and White Balls
文章目录 一、题目二、题解 一、题目 There are n balls on a table, each ball has a color black or white. You are given a 0-indexed binary string s of length n, where 1 and 0 represent black and white balls, respectively. In each step, you can choose two a…...
系列二十六、idea安装javap -c
一、概述 javap -c是一个能够将.java文件反编译为.class文件的指令,例如我在idea中编写了一个Car.java文件,我想看看这个类被编译后长什么样的,就可以使用该指令进行查看。 二、配置 2.1、 Java Bytecode Decompiler File>Settings>Pl…...
nginx 如何根据IP做限流,以及 nginx 直接返回 json 格式数据
Nginx 限流配置 Nginx是如何限流的。随着业务的扩散,系统并发越来越高时,有三样利器用来保护系统,分别是缓存、降级和限流。 随着业务的扩散,系统并发越来越高时,有三样利器用来保护系统,分别是缓存、降…...
C语言链式栈
stack.h typedef struct Node_s {int data;struct Node_s *pNext; } Node_t, *pNode_t;typedef struct Stack_s {pNode_t pHead;//栈顶指针,指向了链表的第一个结点int size;//栈的元素个数 } Stack_t, *pStack_t;void init(pStack_t pStack); void push(pStack_t …...
【Go入门】 Go的http包详解
【Go入门】 Go的http包详解 前面小节介绍了Go怎么样实现了Web工作模式的一个流程,这一小节,我们将详细地解剖一下http包,看它到底是怎样实现整个过程的。 Go的http有两个核心功能:Conn、ServeMux Conn的goroutine 与我们一般编…...
解决k8s node节点报错: Failed to watch *v1.Secret: unknown
现象: 这个现象是发生在k8s集群证书过期,重新续签证书以后。 记得master节点的/etc/kubernetes/kubelet.conf文件已经复制到node节点了。 但是为什么还是报这个错,然后运行证书检查命令看一下: 看样子是差/etc/kubernetes/pki/…...
日志维护库:loguru
在复杂的项目中,了解程序的运行状态变得至关重要。在这个过程中,日志记录(logging)成为我们追踪、调试和了解代码执行的不可或缺的工具。在python语言中常用logging日志库,但是logging日志库使用相对繁琐,在…...
【Go入门】 Go如何使得Web工作
【Go入门】 Go如何使得Web工作 前面小节介绍了如何通过Go搭建一个Web服务,我们可以看到简单应用一个net/http包就方便的搭建起来了。那么Go在底层到底是怎么做的呢?万变不离其宗,Go的Web服务工作也离不开我们第一小节介绍的Web工作方式。 w…...
汽车虚拟仿真视频数据理解--CLIP模型原理
CLIP模型原理 CLIP的全称是Contrastive Language-Image Pre-Training,中文是对比语言-图像预训练,是一个预训练模型,简称为CLIP。该模型是 OpenAI 在 2021 年发布的,最初用于匹配图像和文本的预训练神经网络模型,这个任…...
【Web】Ctfshow SSTI刷题记录1
目录 ①web361 362-无过滤 ②web363-过滤单双引号 ③web364-过滤单双引号和args ④web365-过滤中括号[]、单双引号、args ⑤web366-过滤单双引号、args、中括号[]、下划线 ⑦web367-过滤单双引号、args、中括号[]、下划线、os ⑧web368-过滤单双引号、args、中括号[]、下…...
【广州华锐互动】VR可视化政务服务为公众提供更直观、形象的政策解读
虚拟现实(VR)技术正在逐渐应用于政务服务领域,为公众提供更加便捷、高效和个性化的服务体验。通过VR眼镜、手机等设备,公众可以在虚拟环境中参观政务服务中心,并根据自己的需求选择不同的办事窗口或事项进行咨询和办理…...
DataSphere Studio:企业级数据开发平台的7大核心优势与完整使用指南
DataSphere Studio:企业级数据开发平台的7大核心优势与完整使用指南 【免费下载链接】DataSphereStudio WeBankFinTech/DataSphereStudio: 是腾讯金融科技的一个数据开发平台,具有强大的数据处理,分析,可视化和机器学习功能&#…...
明日方舟游戏资源库:高级游戏数据分析与开发实战指南
明日方舟游戏资源库:高级游戏数据分析与开发实战指南 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 《明日方舟》游戏资源库是一个完整的开源项目,为开发者和数…...
WebDataset教学视频:从零开始学习WebDataset的10个系列课程
WebDataset教学视频:从零开始学习WebDataset的10个系列课程 【免费下载链接】webdataset A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch. 项目地址: https://gitcode.com/gh_mirro…...
5个核心功能解决内容创作者的抖音批量下载痛点
5个核心功能解决内容创作者的抖音批量下载痛点 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工…...
GLM-4.1V-9B-Base算法应用:融合LSTM时序预测的智能视频内容分析平台
GLM-4.1V-9B-Base算法应用:融合LSTM时序预测的智能视频内容分析平台 1. 引言:当视频分析遇上多模态AI 想象一下这样的场景:一个商场监控室里,安保人员需要同时盯着几十个监控画面;或者一个短视频平台的内容审核团队&…...
SQL Server导入导出向导报错终极指南:从驱动安装到版本兼容性全解析
SQL Server数据迁移全链路排错手册:从驱动配置到跨版本适配实战 当你第5次看到"未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序"的红色报错框时,是否想过这背后隐藏着SQL Server数据迁移的完整知识体系?数据工程师老张最近…...
Qwen3-14B私有部署镜像实战:基于AI Agent的自动化工作流设计
Qwen3-14B私有部署镜像实战:基于AI Agent的自动化工作流设计 1. 为什么需要AI Agent 想象一下,每天早上打开电脑,你的数字助手已经自动整理好当天的会议纪要、生成了数据分析报告、回复了常规邮件,甚至根据你的日程安排调整了工…...
Embedded Coder实战:5分钟搞定PID控制器的C代码生成(附完整配置流程)
Embedded Coder实战:5分钟搞定PID控制器的C代码生成(附完整配置流程) 在工业自动化领域,PID控制器就像一位不知疲倦的调节大师,默默维持着无数设备的稳定运行。想象一下,当你需要将这套经典算法部署到资源有…...
OpenClaw调试技巧:解决SecGPT-14B模型返回结果异常问题
OpenClaw调试技巧:解决SecGPT-14B模型返回结果异常问题 1. 问题背景与现象描述 上周在尝试用OpenClaw对接SecGPT-14B模型时,遇到了一个棘手的问题:模型返回的结果经常出现截断或格式混乱。具体表现为: 当请求生成网络安全报告时…...
MQ之KAFKA (broker 高可用)
Kafka KRaft 核心知识点(面试+生产极简版) KRaft(Kafka Raft):Kafka 2.8+ 引入、3.3+ 生产可用,完全替代 Zookeeper 的内置元数据一致性协议(基于 Raft)。 一句话背诵 内置 Raft、无 ZK、元数据自管理、选举更快、吞吐更高、架构极简。 1. 核心概念(必背) Control…...
