当前位置: 首页 > article >正文

如何在Python中创建测试图像

原文地址https://medium.com/itberrios6/how-to-make-a-test-image-in-python-1a6c2d41b6ab学习如何制作测试图像在计算机视觉和图像处理中创建测试图像以更好地了解算法或滤波器将如何执行通常是有用的。测试图像是一个基准可以将多种算法相互比较。让我们开始吧代码位于GitHub上。简单测试图像通过skimage可以轻松获得许多测试图像但它们通常不适合描述算法和滤波器。相反我们的目标是描述更简单的图像上的算法我们将重点使用numpy和opencv创建旋转对称的测试图像。首先我们将制作一个简单的测试图像然后我们将使用正弦函数制作一个更复杂的图像。import numpy as np import cv2 import matplotlib.pyplot as plt %matplotlib inline # size of NxN image n 512 # get test image of a circle test_image np.zeros((n, n)) cv2.circle(test_image, center(n//2, n//2), radiusn//3, color(255,), thickness-1) # OPTIONAL: blurr test image cv2.GaussianBlur(test_image, ksize(9,9), sigmaX11, dsttest_image) # 0-1 normalize and cast to float32 cv2.normalize(test_image, test_image, 0, 1, cv2.NORM_MINMAX, dtypecv2.CV_32FC1) # display plt.imshow(test_image) plt.title(Test Image);Figure 1.在暗背景上测试一个圆的图像你可能想知道为什么我们要使用模糊原因是让圆的边界逐渐归零而不是粗略地下降。Figure 2.简单测试图像的截面。你可以使用opencv的形状函数尝试更简单的测试图像现在让我们实现一个更复杂的测试图像。复杂测试图像这是一个快速的复杂测试函数我们将使用正弦函数创建一个半径为r的圆对称波纹函数。其中半径定义为到原点的距离。def f(r): r - is the Radius from the center outputs r.copy().astype(np.float32) index (r 56) (r 256) outputs[r 56] 127 outputs[index] 127*np.sin(r[index]/np.pi) outputs[r 256] 127 return outputs # get images indexes as column vectors x_index, y_index np.meshgrid(np.arange(0, N), np.arange(0, N)) x_index x_index.reshape((-1, 1)) y_index y_index.reshape((-1, 1)) # get radius r r np.round(np.sqrt((x_index - N//2)**2 (y_index - N//2)**2)).astype(int).squeeze() test_image f(r).reshape((N, N))Figure 3. 正弦测试图像Figure 4. 正弦图像的横截面简单的正弦测试图像为我们提供了更有趣的特征但实际上我们可以生成更鲁棒的东西。代码如下:g lambda r : np.sin(((112*np.pi)/(np.log(2))*((2**(-r/56))) - 2**(-256/56))) def f(r): r - is the Radius from the center outputs r.copy() index_1 (r 56) (r 64) index_2 (r 64) (r 224) index_3 (r 224) (r 256) outputs[r 56] 127 outputs[index_1] 127*(1 (g(r[index_1]) * np.cos((np.pi*r[index_1]/16) - 4*np.pi)**2)) outputs[index_2] 127*(1 g(r[index_2])) outputs[index_3] 127*(1 (g(r[index_3]) * np.sin((np.pi*r[index_3]/64) - 4*np.pi)**2)) outputs[r 256] 127 return outputs def get_test_image(N): Obtains an NxN test image # get image indexes as column vectors x_index, y_index np.meshgrid(np.arange(0, N), np.arange(0, N)) x_index x_index.reshape((-1, 1)) y_index y_index.reshape((-1, 1)) # get radius r r np.round(np.sqrt((x_index - N//2)**2 (y_index - N//2)**2)).astype(np.float32).squeeze() return f(r).reshape((N, N)) # get size n 512 # get sinusoidal test image test_image get_test_image(n).astype(np.float32) # OPTIONAL blurr test image # cv2.GaussianBlur(test_image, ksize(5,5), sigmaX3, dsttest_image) # 0-1 normalize cv2.normalize(test_image, test_image, 0, 1, cv2.NORM_MINMAX, dtypecv2.CV_32FC1) # display plt.imshow(test_image) plt.title(Test Image);Figure 5.复正弦测试图像Figure 6. Cross Section of Complex Sinusoidal Test Image.现在我们有了一个具有不同波峰和波谷的测试图像用于比较我们的算法或滤波器的性能。这些并不是随机的峰值和低谷它们代表了图像中受控的频率变化。中心平坦无频率变化(也称为直流)。当我们从中心出去时我们参与了一个非常高的频率区域在频率上逐渐减少一直到边缘。为什么控制频率变化很重要?它允许我们测量滤波器的一般频率响应而无需明确进入频域。具有已知频率变化的图像允许我们在不转换到频率空间的情况下测量频率响应除了正弦函数f和g我们还可以使用模糊来控制峰值和谷值的强度。希望这能让你对创建自己的测试函数有一些了解以便将来使用。References[1] Granlund, G. H., Knutsson, H. (2011).Signal Processing for Computer Vision. Springer.

相关文章:

如何在Python中创建测试图像

原文地址:https://medium.com/itberrios6/how-to-make-a-test-image-in-python-1a6c2d41b6ab 学习如何制作测试图像 在计算机视觉和图像处理中,创建测试图像以更好地了解算法或滤波器将如何执行通常是有用的。测试图像是一个基准,可以将多种…...

AI-Shoujo HF Patch完全指南:从技术架构到高级应用

AI-Shoujo HF Patch完全指南:从技术架构到高级应用 【免费下载链接】AI-HF_Patch Automatically translate, uncensor and update AI-Shoujo! 项目地址: https://gitcode.com/gh_mirrors/ai/AI-HF_Patch AI-Shoujo HF Patch是一款专为AI-Shoujo游戏设计的模块…...

终极指南:macOS上轻松解密QQ音乐加密音频文件

终极指南:macOS上轻松解密QQ音乐加密音频文件 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结果存…...

BarrageGrab:如何构建企业级跨平台直播数据采集系统?

BarrageGrab:如何构建企业级跨平台直播数据采集系统? 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连,非系统代理方式,无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在直播…...

DroidCam OBS Plugin终极指南:3步将手机变身高清直播摄像头

DroidCam OBS Plugin终极指南:3步将手机变身高清直播摄像头 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 想要零成本打造专业直播设备?DroidCam OBS Plugin就是你…...

Lean版本管理革命:3步搞定多版本Lean开发环境

Lean版本管理革命:3步搞定多版本Lean开发环境 【免费下载链接】elan The Lean version manager 项目地址: https://gitcode.com/gh_mirrors/el/elan 还在为不同Lean项目需要不同版本而头疼吗?还在手动下载、配置、切换Lean版本吗?今天…...

2026年电工杯A 题 绿电直连型电氢氨园区优化运行【思路、Python代码、Matlab代码、论文(持续更新中......)】

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

eDEX-UI:科幻电影级的终端模拟器如何重塑开发者工作流

eDEX-UI:科幻电影级的终端模拟器如何重塑开发者工作流 【免费下载链接】edex-ui A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support. 项目地址: https://gitcode.com/gh_mirrors/ed/edex-ui…...

终极指南:如何用TrollInstallerX快速解锁iOS系统自由

终极指南:如何用TrollInstallerX快速解锁iOS系统自由 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 想要打破iOS系统的限制,安装更多个性化应用…...

智能网盘直链解析工具:免会员下载加速的全新解决方案

智能网盘直链解析工具:免会员下载加速的全新解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

Beyond Compare 5密钥生成器终极指南:如何通过Python工具免费解锁专业功能

Beyond Compare 5密钥生成器终极指南:如何通过Python工具免费解锁专业功能 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期到期而烦恼吗&#xf…...

KMS智能激活工具:三步永久激活Windows和Office系统完整指南

KMS智能激活工具:三步永久激活Windows和Office系统完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档突然变…...

Windows键盘终极改造指南:用SharpKeys解锁键盘隐藏潜力

Windows键盘终极改造指南:用SharpKeys解锁键盘隐藏潜力 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpkeys …...

星露谷物语SMAPI模组加载器:终极安装与使用完整指南

星露谷物语SMAPI模组加载器:终极安装与使用完整指南 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI 你是否想在星露谷物语中体验数百个模组带来的无限可能,却又担心安装复杂和…...

解放双眼:如何用ebook2audiobook将电子书变成专业有声读物

解放双眼:如何用ebook2audiobook将电子书变成专业有声读物 【免费下载链接】ebook2audiobook Generate audiobooks from e-books, voice cloning & 1158 languages! 项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook 你是否曾经在通勤…...

如何告别网盘限速?9大主流平台直链解析完整指南

如何告别网盘限速?9大主流平台直链解析完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...

三步解锁RPG Maker MV/MZ加密资源:新手也能快速提取游戏文件

三步解锁RPG Maker MV/MZ加密资源:新手也能快速提取游戏文件 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://g…...

3个妙招突破百度网盘限速:baidu-wangpan-parse终极解析指南

3个妙招突破百度网盘限速:baidu-wangpan-parse终极解析指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否经历过这样的场景?急着下载一份重要的…...

Montserrat可变字体深度解析:实现响应式排版的最佳实践

Montserrat可变字体深度解析:实现响应式排版的最佳实践 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat Montserrat字体项目是一款源自布宜诺斯艾利斯传统街区的开源字体,以其独特的城市排版风格和灵活的可…...

城市供水管网抗震可靠性分析方法与系统开发【附程序】

✨ 长期致力于供水管网、抗震可靠性、修复策略、震害预测、系统开发研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)场地效应预测模型与管道地震易损性…...

Awesome Video终极指南:从零开始掌握流媒体视频技术栈

Awesome Video终极指南:从零开始掌握流媒体视频技术栈 【免费下载链接】awesome-video A curated list of awesome streaming video tools, frameworks, libraries, and learning resources. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-video 流媒…...

QKeyMapper:重新定义Windows输入控制的终极解决方案

QKeyMapper:重新定义Windows输入控制的终极解决方案 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠,手…...

Copula导向的互相关随机场模拟及土坡可靠度分析【附仿真】

✨ 长期致力于土坡可靠度、信息扩散、Copula函数、互相关随机场、HMC-SS法研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)二元信息扩散分布Copula模型…...

DeepSpeech终极指南:离线语音识别的深度学习引擎完整实践

DeepSpeech终极指南:离线语音识别的深度学习引擎完整实践 【免费下载链接】DeepSpeech DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power G…...

别再用土办法改论文了!书匠策AI官网www.shujiangce.com才是2025届毕业生的“通关密码“

你有没有经历过这种崩溃瞬间? 凌晨两点,你对着电脑屏幕,查重率39%,AIGC疑似率67%。导师发来一条消息:"这篇不像你写的,重写。" 那一刻,你是不是特别想问一句:我到底该怎…...

如何高效汉化Kirikiri引擎视觉小说游戏:完整工具指南

如何高效汉化Kirikiri引擎视觉小说游戏:完整工具指南 【免费下载链接】KirikiriTools Tools for the Kirikiri visual novel engine 项目地址: https://gitcode.com/gh_mirrors/ki/KirikiriTools KirikiriTools是一套专为Kirikiri引擎视觉小说游戏设计的汉化…...

Rust-Bio 项目架构深度解析:从模块设计到性能调优

Rust-Bio 项目架构深度解析:从模块设计到性能调优 【免费下载链接】rust-bio This library provides implementations of many algorithms and data structures that are useful for bioinformatics. All provided implementations are rigorously tested via conti…...

论文写到头秃?书匠策AI这套“毕业论文急救包“我劝你现在就存好!

同学们,我做论文写作科普这么久,后台私信最多的一句话就是:"老师,我论文一个字都没动,还有救吗?" 有。今天就给你们安利一个我最近实测了一圈、觉得确实有点东西的工具——书匠策AI(…...

3个关键问题解析:如何用PlantUML Editor提升UML设计效率

3个关键问题解析:如何用PlantUML Editor提升UML设计效率 【免费下载链接】plantuml-editor PlantUML online demo client 项目地址: https://gitcode.com/gh_mirrors/pl/plantuml-editor 你是否曾在UML设计过程中陷入这样的困境:花费大量时间调整…...

厦门大学:语音大模型——从语音识别到全双工语音交互 2026

这份文档由厦门大学洪青阳于 2026 年 5 月撰写,围绕语音大模型从语音识别到全双工语音交互展开,从背景、技术、模型、交互到应用系统梳理行业进展,核心总结如下:一、背景:语种、方言与交互范式演进语言基础&#xff1a…...