纪念我的第一个稍微有用一点的python代码的成功——利用最近邻插值法实现图像的放大

news/2024/7/21 5:02:33 标签: python, 图像处理

一、技术来源:

        插值算法 | 最近邻插值法_哔哩哔哩_bilibili

        感谢这位的技术分享,讲解得通俗易懂

二、一些磕磕绊绊:

1.首先,pycharm的使用,通过file创建一个新的项目(最好可以记住文件路径),然后就可以直接在main.py中写代码了

2.然后,常常需要处理 各种“库”的问题,可以在下面找到对应的地方,也可以file-settings-projuct-interpreter中点那个“+”加号进行install

3.有时候pycharm会标注一些红线,先别管它,比如,我这里的numpy它一直标红,

4.关于error怎么处理?先chatGPT,然后csdn解决

三、最邻近插值法的思想(那个视频的笔记浓缩版本)

1.主要思想:

需要图像放大后(无论怎样一定是“数字”也就是整数对象),在缩小为等比例,每个小格子对应找到原来的9个格子中的一个,然后作为小格子中的数值

2.代码:

注意,首先,我在pycharm-project2文件夹里面放入了一张test1.jpg

最终也在那里生成了一张放大1.5倍的test.jpg图片

python">import numpy as np
from PIL import Image

def nearest_neighbor_interpolation(image,scale_factor):
    height,width = image.shape[:2] #读取图像的长宽

    out_height = int(height*scale_factor)
    out_width = int(width*scale_factor)

    output_image = np.zeros((out_height,out_width,3),dtype = np.uint8)

    for out_y in range(out_height):
        for out_x in range(out_width):
            input_x = int(round(out_x/scale_factor))
            input_y = int(round(out_y/scale_factor))

            input_x = min(input_x,width-1)
            input_y = min(input_y,height-1)

            output_image[out_y,out_x] = image[input_y,input_x]
    return output_image

#读取原始图像:
input_image = Image.open('test.jpg')
image_array = np.array(input_image)

#输出缩放后的图像:
output_array = nearest_neighbor_interpolation(image_array,1.5)
output_image = Image.fromarray(output_array)

output_image.save('test2.jpg')



3.效果就不看了,那个图片是我女神

确实是模糊了一点,不过看不出来

4.必须用这个最邻近插值法的场景:

语义分割后的放大缩小


http://www.niftyadmin.cn/n/4984823.html

相关文章

el-select 使用

案例&#xff1a; /* * label : 界面上展示的是哪个字段,我这里需要展示名称 * value : 绑定的字段&#xff0c;一般是id */<el-selectv-model"Form.BillNumber"placeholder"请选择"change"changeValue($event)"><el-optionv-for"…

什么是OLAP

一、什么是OLAP OLAP&#xff08;On-line Analytical Processing&#xff0c;联机分析处理&#xff09;是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。可以比较下其与传统的OLTP&#xff08;On-line Transaction Processing&#xff0c;联机事务处理&…

【llm论文】Scaling Instruction-Finetuned Language Models

https://arxiv.org/pdf/2210.11416.pdf 扩展任务数量&#xff1b;扩展模型大小&#xff1b;在chain-of-thought数据上微调。 提高模型能力。

自然语言处理(五):子词嵌入(fastText模型)

子词嵌入 在英语中&#xff0c;“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同&#xff0c;“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西…

基于Googlenet深度学习网络的人脸身份识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... % 定义修改的范围 …

【论文精读】Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 前言Abstract1. Introduction2. Related Work3. Method3.1. Overall Architecture3.2. Shifted Window based Self-AttentionSelf-attention in non-overlapped windowsShifted window partitioning …

那些在职场上最吃香的人,其实都偷偷学了Python

Python为什么这么火&#xff1f; 不可否认&#xff0c;Python在机器学习和数值计算等不断增长的科技领域获得了非常广泛的应用。 但Python这么受欢迎的原因&#xff0c;最主要的还是因为它简单易用、上手容易&#xff0c;非程序员也能使用&#xff0c;而不是一种只适合高级程序…

【SpringBoot】详细介绍SpringBoot中的bean

在Spring Boot中&#xff0c;Bean是由Spring容器实例化、管理和维护的对象。Bean是Spring框架的核心概念之一&#xff0c;它代表了应用程序中的组件或对象。 以下是有关Spring Boot中Bean的详细介绍&#xff1a; 1. 定义&#xff1a;Bean是在Spring容器中被实例化、管理和维护…