当前位置: 首页 > 后端技术 > Python

分享Python图像处理的3个实用代码

时间:2023-03-26 14:08:33 Python

今天,我将分析三个计算机视觉方向的Python实战代码。主要用到的库有:opencv-pythonnumpypillow如果你配置的环境中没有这些模块,可以先使用pip命令下载安装:pipinstallopencv-Pythonnumpypillowedgedetectionedge的基本思想检测是为了简化图像信息,用边缘线来表示图像所携带的信息,而这次我们要用到Canny边缘检测算子,需要在Opencv.canny()方法中调用,代码如下如下:importcv2ascvimportmatplotlib.pyplotaspltimg=cv.imread('pathtoimportimage',0)edges=cv.Canny(img,100,200)plt.subplot(121)plt.imshow(img,cmap='gray').........plt.show()output将照片转成素描风格我们要达到的最终目标是将照片变成素描风格。大致的逻辑是首先需要将图像变成灰度图像,然后进行反转。反转后,进行模糊处理。代码如下:importcv2img=cv2.imread("导入照片的路径")##对照片进行灰度化gray_image=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)##反转灰度照片inverted_gray_image=255-gray_image##模糊反转照片blurred_inverted_gray_image=cv2.GaussianBlur(inverted_gray_image,(19,19),0)##再次反转inverted_blurred_image=255-blurred_inverted_gray_image###颜色淡化和混合处理sketck=cv2.divide(gray_image,inverted_blurred_image,scale=256.0)cv2.imshow("原图",img)cv2.imshow("铅笔素描",sketch)cv2.waitKey(0)output判断形状现在我们需要判断图片中图形的轮廓,而识别轮廓的算法是在opencv模块中内置的,代码如下:importcv2importnumpyasnpfrommatplotlibimportpyplotasplt#importPhotoimg=cv2.imread('3.png')#将照片转为灰度,当然如果你的照片已经是黑白的,可以跳过这一步gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#设置灰度图像的阈值_,threshold=cv2.threshold(gray,127,255,cv2.THRESH_BINARY)#轮廓轮廓识别方法,_=cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPfor0)icont=0incontours:#cv2.approxPloyDP()函数近似形状approx=cv2.approxPolyDP(contour,0.01*cv2.arcLength(contour,True),True)#求图片的中心点contif我们的M=cv2.moments(M['m00']!=0.0:x=int(M['m10']/M['m00'])y=int(M['m01']/M['m00'])#将概述Put如果len(approx)==3,每个图形中心的名称:cv2.putText(img,'Triangle',(x,y),cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,0,0),2)eliflen(大约)==4:...eliflen(大约)==5:......eliflen(approx)==6:......else:......#呈现最终图形cv2.imshow('shapes',img)Iscv2.waitKey(0)cv2.destroyAllWindows()输出简单实用?更多Python技术干货,请前往gzh【Python编程学习圈】了解更多。如果你留心,可以免费获得大量的Python学习资料和教程。内容丰富详细,对大家的学习会有很大的帮助!