安装vscode

对不同版本的系统选择不同的vscode版本,win7选择的是VScode2022.07-1.70(支持 Windows 7 的最后一个 Visual Studio Code(VSCode)版本是 1.70.3),win10及以上可以根据自己的喜好选择新版:August 2024 (version 1.93)

在这里插入图片描述
VScode版本对照下载

安装步骤

  • 同意协议
    在这里插入图片描述
  • 勾选附加任务
    在这里插入图片描述
  • 完成安装
    在这里插入图片描述

安装Python

  • 选择Customize installation,自定义安装;
    在这里插入图片描述
  • 附加选项
    在这里插入图片描述
  • 高级选项,(如果在机房的话,建议勾选all users,不过这个选框好像是disabled的),在自己电脑的话一般只有一个用户,所以无需勾选;然后安装路径可以自定义;然后点击安装。
    在这里插入图片描述

集成配置

  1. 进入vscode,点击‘扩展‘图标,在搜索框输入目标内容,并搜索;

    • 输入chinese,找到’中文(简体)‘汉化插件,点击安装,而后点击右下角弹窗,点击重启;
    • 输入python,点击安装;
    • 输入jupyter,点击安装;
      在这里插入图片描述
  2. 配置python解释器;

    • 点击菜单栏’查看‘,点击命令面板,输入’> python: Select interpreter‘,点击,选择python解释器;
      在这里插入图片描述
      在这里插入图片描述
  3. 修改默认配置文件,选择cmd,点击删除powershell;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 关掉窗口,重新启动。

安装模块

若安装的python版本是python3.8,则需要先升级pip:
python -m pip install --upgrade pip

安装ipykernel:

pip install ipykernel

安装内核并为其命名(例如,这里命名为 “myenv”,可根据实际情况修改):

python -m ipykernel install --user --name=myenv

内核通常安装在以下位置:
Windows:C:\Users<你的用户名>\AppData\Roaming\jupyter\kernels<myenv>。
macOS 和 Linux:~/.local/share/jupyter/kernels/

安装numpy和Pillow:

pip install numpy
pip install Pillow

执行代码

将代码复制到txt文件,修改后缀为.ipynb,使用vscode执行。

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from PIL import Image\n",
    "im = Image.open('doge.jpg')\n",
    "# im.show()   # 查看原图\n",
    "display(im)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "# 查看图像的shape属性\n",
    "im = np.array(im)\n",
    "im.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 查看某个像素点\n",
    "im[100, 100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 单独提取出所有像素点的红色分量\n",
    "im_r = im[:,:,0]\n",
    "# Image.fromarray(im_r).show()\n",
    "display(Image.fromarray(im_r))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将两张图片融合在一起\n",
    "im1 = np.array(Image.open('doge.jpg'))\n",
    "im2 = np.array(Image.open('cat.jpg'))\n",
    "\n",
    "# 确保两张图片大小相同  \n",
    "assert im1.shape == im2.shape, \"两张图片大小必须相同\"  \n",
    "\n",
    "# 计算融合后的图片  \n",
    "# 注意:这里假设im1和im2都是RGB图像,并且我们分别给予它们0.4和0.6的权重  \n",
    "im_blend = im1 * 0.4 + im2 * 0.6  \n",
    "\n",
    "# 使用np.clip将结果限制在0到255之间  \n",
    "im_blend = np.clip(im_blend, 0, 255).astype(np.uint8)\n",
    "\n",
    "# 将NumPy数组转换回图片并显示  \n",
    "blended_img = Image.fromarray(im_blend)  # 得到的im_blend为浮点数,将其转换为整型\n",
    "# blended_img.show() \n",
    "display(blended_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 降采样\n",
    "# 对图像进行下采样,每隔10个像素取一个像素  \n",
    "im_downsample = im[::10, ::10, :]  \n",
    "  \n",
    "# 将下采样后的 NumPy 数组转换回 PIL 图像对象  \n",
    "im_downsample_pil = Image.fromarray(im_downsample.astype(np.uint8))  # 确保数据类型为 uint8  \n",
    "  \n",
    "# 显示图像  \n",
    "# im_downsample_pil.show()\n",
    "display(im_downsample_pil)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 翻转图片\n",
    "im_flipped = im[::-1,:,:]   # 上下翻转\n",
    "# Image.fromarray(im_flipped).show()\n",
    "display(Image.fromarray(im_flipped))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 裁剪图片\n",
    "im_cropped = im[40: 540, 400: 900, :]\n",
    "# Image.fromarray(im_cropped).show()\n",
    "display(Image.fromarray(im_cropped))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base kernel",
   "language": "python",
   "name": "base"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐