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

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

相关推荐
章老师说9 分钟前
BFE v1.8.3 正式发布:AI网关能力再升级,企业级七层负载均衡持续进化
运维·人工智能·负载均衡
To_OC6 小时前
手搓一个迷你版 Cursor:从零实现能自动写代码的编程 Agent
人工智能·langchain·llm
民乐团扒谱机7 小时前
【全流程实战】LibTV节点式AI视频工作流落地教程|从剧本到成片可复用流水线,新手/开发者双版本
人工智能·音视频
STLearner8 小时前
ICML 2026 | LLM×Graph论文总结[1]【图基础模型,文本属性图,多模态属性图,图对齐,图提示学习,关系深度学习
论文阅读·人工智能·python·深度学习·学习·机器学习·数据挖掘
冬奇Lab8 小时前
MCP 系列(05):Resources 和 Prompts 进阶——动态数据、参数化 URI 与多轮模板
人工智能·llm·mcp
冬奇Lab8 小时前
开源项目第158期:cangjie-skill — 把书、视频、播客里的方法论蒸馏成可调用的 AI Skills
人工智能·开源·资讯
习明然9 小时前
我的本地化AI项目(三)
人工智能·python·electron·c#·avalonia
程序猿炎义10 小时前
一人内容团队——用Amazon Quick Desktop实现小红书从选题到发布的全流程自动化
大数据·人工智能·microsoft·自动化·小红书