opencv期末练习题(8)附带解析

图像切片

python 复制代码
%matplotlib inline
import cv2
import matplotlib.pyplot as plt
def imshow(img,gray=False,bgr_mode=False):
    if gray:
        img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
        plt.imshow(img,cmap="gray")
    else:
        if not bgr_mode:
            img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
        plt.imshow(img)
    plt.show()
python 复制代码
import cv2

img = cv2.imread("zju.png")
imshow(img)

得到结果如图所示:

python 复制代码
img.shape # shape 维度信息
img=cv2.resize(img,dsize=(225,225))
crop_img = img[70:170,60:165,:]
imshow(crop_img)
复制代码
浅拷贝,是指当图像之间进行赋值时,图像数据并未发生复制,而是两个对象都指向同一块内存块。
深拷贝,是指新创建的图像拥有原始图像的崭新拷贝,即拷贝图像和原始图像在内存中存放在不同地方
python 复制代码
import cv2
img = cv2.imread("zju.png")
# 浅拷贝
copy1 = img
# 深拷贝
copy2 = img.copy()
# 对源img进行修改,查看copy1中的图像是否有发生变化
img[200:400,200:400] = (255,0,0)
result1 = cv2.hconcat([img,copy1]) # 水平拼接两个图片
result2 = cv2.hconcat([img,copy2])
imshow(result1)
imshow(result2)

得到结果如下图:

小练习:截取car.jpg的完整车辆图片和车牌图片

python 复制代码
import cv2
car = cv2.imread("car.jpg")
imshow(car)
python 复制代码
imshow(car[0:350,460:1000,:])
python 复制代码
imshow(car[270:300,670:790,:])

根据图中标尺得知车牌坐标:得到如下所示图像切片。

相关推荐
说私域1 小时前
从“高密度占有”到“点状渗透”:论“开源AI智能名片链动2+1模式”在S2B2C商城小程序中的渠道革新
人工智能·小程序
limenga1022 小时前
TensorFlow Keras:快速搭建神经网络模型
人工智能·python·深度学习·神经网络·机器学习·tensorflow
KG_LLM图谱增强大模型4 小时前
Vgent:基于图的多模态检索推理增强生成框架GraphRAG,突破长视频理解瓶颈
大数据·人工智能·算法·大模型·知识图谱·多模态
AKAMAI4 小时前
企业如何平衡AI创新与风险
人工智能·云原生·云计算
TDengine (老段)5 小时前
优化 TDengine IDMP 面板编辑的几种方法
人工智能·物联网·ai·时序数据库·tdengine·涛思数据
数据的世界016 小时前
Visual Studio 2026 正式发布:AI 原生 IDE 与性能革命的双向突破
ide·人工智能·visual studio
shayudiandian7 小时前
深度学习中的激活函数全解析:该选哪一个?
人工智能·深度学习
视界先声7 小时前
如何选择合适的养老服务机器人
人工智能·物联网·机器人
RPA机器人就选八爪鱼8 小时前
RPA财务机器人:重塑财务效率,数字化转型的核心利器
大数据·数据库·人工智能·机器人·rpa