计算机视觉编程

目录

灰色度

缩略图

拷贝粘贴区域

调整图像尺寸

旋转图像45°

画图线、描点


灰色度

灰度是指图像中每个像素的亮度值,用来描述图像中各个像素的明暗程度。在计算机视觉中,灰度可以通过以下方式来计算:

  1. 平均值法:将图像中每个像素的RGB值(红、绿、蓝)相加,然后除以3,得到灰度值。

  2. 加权平均法:将图像中每个像素的RGB值分别乘以不同的权重,然后相加,得到灰度值。常用的权重是:红色权重为0.299,绿色权重为0.587,蓝色权重为0.114。

  3. 单一通道法:将图像中的一个通道(一般选择红色通道、绿色通道或蓝色通道)的像素值作为灰度值。

这些方法都可以用来计算图像的灰度值,根据具体的应用场景和需求,选择合适的方法进行灰度计算。

python 复制代码
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()

pil_im = Image.open(r"图片路径")
gray()
subplot(121)
title(u'原图',fontproperties=font)
axis('off')
imshow(pil_im)

pil_im = Image.open("图片路径").convert('L')
subplot(122)
title(u'灰度图',fontproperties=font)
axis('off')
imshow(pil_im)

show()

缩略图

缩略图是指按照一定比例或尺寸将原始图像进行压缩和裁剪后得到的小尺寸图像,用于快速展示大尺寸原始图像的预览效果。在计算机视觉中,生成缩略图可以有以下几种方式:

  1. 等比例缩放法:按照设定的比例将原始图像的宽度和高度同时缩小,保持原始图像的宽高比。这样可以得到一个缩小的图像,保持了原始图像的比例。

  2. 固定尺寸缩放法:按照设定的固定宽度或高度将原始图像进行缩放,可能会导致图像的宽高比失衡。

  3. 裁剪压缩法:将原始图像按照设定的比例进行裁剪,然后再进行等比例或固定尺寸缩放。

  4. 图像压缩算法:使用图像压缩算法,如JPEG、PNG等,将原始图像进行压缩,同时设定压缩质量和尺寸,得到缩略图。

生成缩略图的目的是为了在资源有限的情况下能够快速加载和展示图像,节省带宽和提高用户体验。具体应用场景包括网页中的图像展示、相册浏览、图像搜索等。

python 复制代码
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()

# 显示原图
pil_im = Image.open(r"图片路径")
print(pil_im.mode, pil_im.size, pil_im.format)
subplot(121)
title(u'原图', fontproperties=font)
axis('off')
imshow(pil_im)

# 缩略图
pil_im = Image.open('图片路径')
size = 128, 128
pil_im.thumbnail(size)
print(pil_im.size)
subplot(122)
title(u'缩略图', fontproperties=font)
axis('off')
imshow(pil_im)

show()

拷贝粘贴区域

python 复制代码
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()

# 显示原图
pil_im = Image.open(r"图片路径")
print(pil_im.mode, pil_im.size, pil_im.format)
subplot(121)
title(u'原图', fontproperties=font)
axis('off')
imshow(pil_im)

#拷贝粘贴区域
pil_im = Image.open('图片路径')
box = (50,50,200,200)
region = pil_im.crop(box)
region = region.transpose(Image.ROTATE_180)
pil_im.paste(region,box)
subplot(122)
title(u'拷贝粘贴区域', fontproperties=font)
axis('off')
imshow(pil_im)

show()

调整图像尺寸

python 复制代码
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()

# 显示原图
pil_im = Image.open(r"图片路径")
print(pil_im.mode, pil_im.size, pil_im.format)
subplot(121)
title(u'原图', fontproperties=font)
axis('off')
imshow(pil_im)

# 调整图像尺寸
pil_im = Image.open('图片路径')
size = 128, 128
pil_im = pil_im.resize(size)
print (pil_im.size)
subplot(122)
title(u'调整尺寸后的图像', fontproperties=font)
axis('off')
imshow(pil_im)

show()

旋转图像45°

python 复制代码
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()

# 显示原图
pil_im = Image.open(r"图片路径")
print(pil_im.mode, pil_im.size, pil_im.format)
subplot(121)
title(u'原图', fontproperties=font)
axis('off')
imshow(pil_im)

# 旋转图像45°
pil_im = Image.open('图片路径')
pil_im = pil_im.rotate(45)
subplot(122)
title(u'旋转45°后的图像', fontproperties=font)
axis('off')
imshow(pil_im)

show()

画图线、描点

python 复制代码
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)

im = array(Image.open('D:\\pycharm hgy\\第一个\\计算机视觉\\第一章\\data\\1.jpg'))
figure()

# 画有坐标轴的
subplot(121)
imshow(im)
x = [100, 100, 250, 250]
y = [200, 300, 200, 300]
plot(x, y, 'r*')
plot(x[:2], y[:2])
title(u'绘图: "empire.jpg"', fontproperties=font)

# 不显示坐标轴
subplot(122)
imshow(im)
x = [100, 100, 250, 250]
y = [200, 300, 200, 300]
plot(x, y, 'r*')
plot(x[:2], y[:2])
axis('off')  #显示坐标轴
title(u'绘图: "empire.jpg"', fontproperties=font)

show()
相关推荐
浔川python社14 小时前
视界新生,多模态破壁 ——DeepSeek 识图模式正式上线
人工智能·deepseek
云烟成雨TD14 小时前
Spring AI 1.x 系列【30】向量数据库:核心 API 和入门案例
java·人工智能·spring
wuxinyan12314 小时前
大模型学习之路01:提示工程从入门到精通(第一篇)
人工智能·学习·提示词
互联网推荐官14 小时前
上海物联网应用开发技术路径拆解:从协议选型到平台架构的工程实践
大数据·人工智能·软件工程
好运的阿财14 小时前
OpenClaw工具拆解之apply_patch+sandboxed_read
人工智能·python·ai编程·openclaw·openclaw工具
user298769827065414 小时前
四、深入 Claude Code CLI 源码:服务层的架构设计
人工智能
志栋智能14 小时前
跨越人机边界:超自动化巡检如何重塑工作流程?
运维·网络·人工智能·安全·自动化
悠悠1213814 小时前
从零到一搭建AI智能体:hello-agents项目实战部署全记录
人工智能
kishu_iOS&AI14 小时前
NLP —— LSTM/GRU模型
人工智能·pytorch·深度学习·自然语言处理·gru·lstm
马优晨14 小时前
大语言模型(LLM)、Embedding 模型、reranker重排序模型 有什么关系
人工智能·语言模型·embedding·embedding 模型·大语言模型(llm)