基于数字处理答案_第1页
基于数字处理答案_第2页
基于数字处理答案_第3页
基于数字处理答案_第4页
基于数字处理答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于OpenCV的数字图像处理参考答案项目一知识回顾ABBAABCCCC技能练习参考代码:importcv2importnumpyasnpimportrandom#读取图像image=cv2.imread('image//girl.jpg')print(image.shape)image_mask=image.copy()#将image复制一份给变量image_maskimage_mask[80:105,110:185]=(255,255,255)cv2.imshow("image",image)cv2.imshow("image_mask",image_mask)cv2.waitKey()cv2.destroyAllWindows()项目二知识回顾BABAACBACB技能练习参考代码:importcv2importnumpyasnp#读取图像image=cv2.imread('image//house.jpg')ifimageisNone:print("Error:Imagecouldnotberead.")exit()#图像旋转,以图像中心为旋转中心,旋转45度(h,w)=image.shape[:2]center=(w//2,h//2)M=cv2.getRotationMatrix2D(center,45,1.0)#第三个参数是缩放比例rotated=cv2.warpAffine(image,M,(w,h))#旋转后的图像大小可能与原图不同,这里简单设为相同#图像平滑处理(均值滤波),使用5x5滤波核smoothed=cv2.GaussianBlur(rotated,(5,5),0,0)#显示结果cv2.imshow('OriginalImage',image)cv2.imshow('RotatedImage',rotated)cv2.imshow('SmoothedImage',smoothed)#等待按键后关闭窗口cv2.waitKey(0)cv2.destroyAllWindows()项目三知识回顾BDBCABBCAC技能练习参考代码:importcv2importnumpyasnp#读取图像image=cv2.imread('image//house.jpg')ifimageisNone:print("Error:Imagecouldnotberead.")exit()#图像旋转,以图像中心为旋转中心,旋转45度(h,w)=image.shape[:2]center=(w//2,h//2)M=cv2.getRotationMatrix2D(center,45,1.0)#第三个参数是缩放比例rotated=cv2.warpAffine(image,M,(w,h))#旋转后的图像大小可能与原图不同,这里简单设为相同#图像平滑处理(均值滤波),使用5x5滤波核smoothed=cv2.GaussianBlur(rotated,(5,5),0,0)#显示结果cv2.imshow('OriginalImage',image)cv2.imshow('RotatedImage',rotated)cv2.imshow('SmoothedImage',smoothed)#等待按键后关闭窗口cv2.waitKey(0)cv2.destroyAllWindows()项目四知识回顾ABACCAAADA技能练习参考代码:importcv2importnumpyasnpdefpreprocess_image(image):#定义图像预处理函数#转换为灰度图像gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#高斯模糊,去除噪声blurred=cv2.GaussianBlur(gray,(5,5),0)#形态学开运算,去除小的噪声kernel=np.ones((5,5),np.uint8)opening=cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel)returnopening#加载图像image=cv2.imread('image//car4.png')#检查图像是否正确加载ifimageisNone:print("Error:Imagenotfound.")exit()processed_image=preprocess_image(image)#调用函数对图像进行预处理edges=cv2.Canny(processed_image,100,200)#获取车辆的轮廓cv2.imwrite(“image//edges.jpg”,edges)#显示原始图像和检测到的车辆cv2.imshow('OriginalImage',image)cv2.imshow('VehiclesDetected',edges)#等待按键,然后关闭所有窗口cv2.waitKey(0)cv2.destroyAllWindows()项目五知识回顾BABAADABCC技能练习参考代码:importcv2importnumpyasnpimportmatplotlib.pyplotaspltimage=cv2.imread('image//star.jpg')gray_image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#转换为灰度图#阈值处理_,binary_image=cv2.threshold(gray_image,127,255,cv2.THRESH_BINARY_INV)#假设使用反二值化,根据实际情况调整#检测轮廓contours,hierarchy=cv2.findContours(binary_image,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)#绘制轮廓和凸包contour_color=(0,255,0)#绿色轮廓hull_color=(0,0,255)#红色凸包forcontourincontours:hull=cv2.convexHull(contour)#计算凸包cv2.drawContours(image,[contour],-1,contour_color,2)#绘制轮廓cv2.drawContours(image,[hull],-1,hull_color,2)#绘制凸包plt.figure(figsize=(10,8))plt.title('ContoursandConvexHulls')plt.imshow(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))#注意Matplotlib使用RGB顺序plt.axis('off')plt.show()项目六知识回顾ABACBBCCAC技能练习参考代码:importcv2defReversePlayVideo(src):#创建VideoCapture对象cap=cv2.VideoCapture(src)ifnotcap.isOpened():print("Error:视频或摄像头打开失败.....")return#获取视频流属性frame_width=cap.get(cv2.CAP_PROP_FRAME_WIDTH)frame_height=cap.get(cv2.CAP_PROP_FRAME_HEIGHT)fps=cap.get(cv2.CAP_PROP_FPS)brightness=cap.get(cv2.CAP_PROP_BRIGHTNESS)print(f"Framesize:{frame_width}x{frame_height}")print(f"FPS:{fps}")print(f"Brightness:{brightness}")#获取最后一帧的索引total_frames=cap.get(cv2.CAP_PROP_FRAME_COUNT)frame_index=total_frames-1whilecap.isOpened()andframe_index>=0:#设置当前帧位置cap.set(cv2.CAP_PROP_POS_FRAMES,frame_index)ret,frame=cap.read()ifnotret:print("视频捕获错误或结束.....")breakcv2.imshow("ReversePlayVideo",frame)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论