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,:])

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

相关推荐
老蒋每日coding3 分钟前
AI Agent 设计模式系列(十九)—— 评估和监控模式
人工智能·设计模式
AI浩6 分钟前
用于自动驾驶的ApolloScape数据集
人工智能·机器学习·自动驾驶
weixin_4215850112 分钟前
无监督配准
人工智能
救救孩子把14 分钟前
56-机器学习与大模型开发数学教程-5-3 最速下降法与动量法(Momentum)
人工智能·机器学习
njsgcs20 分钟前
MiniCPM4-0.5B-QAT-Int4-GPTQ-format 小显存llm
linux·人工智能
Paul-LangJun25 分钟前
互信息和InfoNCE的关系
人工智能·对比学习·infonce·互信息
lixin55655628 分钟前
基于神经网络的音乐生成增强器
java·人工智能·pytorch·python·深度学习·语言模型
无垠的广袤32 分钟前
【CPKCOR-RA8D1】RUHMI 转换 AI 模型
人工智能·python·嵌入式硬件·开发板
aiguangyuan35 分钟前
从词袋到TF-IDF:sklearn文本特征工程实战指南
人工智能·python·nlp
Sopaco1 小时前
2026年大火的AI工程化中多智能体协调的艺术
人工智能