前言:
此时看官们对“opencv去除图像背景”都比较着重,各位老铁们都想要知道一些“opencv去除图像背景”的相关知识。那么小编同时在网上搜集了一些关于“opencv去除图像背景””的相关文章,希望看官们能喜欢,朋友们快快来学习一下吧!视频:14.1 OpenCV-图像背景更换
import cv2imgfile="img/andy1.jpg"#读取图像数据BGR模式img=cv2.imread(imgfile)# BGR模式转灰度gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#做二值化处理ret,thresh=cv2.threshold(gray,180,255,cv2.THRESH_BINARY) #二值化#mask=cv2.erode(thresh,None,iterations=5)#遍历thresh白色区域部分for i in range(thresh.shape[0]): for j in range(thresh.shape[1]): if thresh[i,j]==255: img[i,j]=[255,0,0]#替换成想要的背景颜色cv2.imshow("img",img)cv2.imshow("thresh",thresh)#cv2.imshow("mask",mask)cv2.waitKey(0)cv2.destroyAllWindows()
#图像二值化 def imgthreshold(): img=cv2.imread("img/s4.jpg") img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret,thresh1=cv2.threshold(img,127,255,cv2.THRESH_BINARY) ret,thresh2=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) ret,thresh3=cv2.threshold(img,127,255,cv2.THRESH_TRUNC) ret,thresh4=cv2.threshold(img,127,255,cv2.THRESH_TOZERO) ret,thresh5=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV) title=[0,1,2,3,4,5] imgcv=[img,thresh1,thresh2,thresh3,thresh4,thresh5] images=list(map(lambda x:Image.fromarray(cv2.cvtColor(x,cv2.COLOR_BGR2RGB)),imgcv)) for i in range(6): plt.subplot(2,3,i+1) plt.imshow(images[i]) plt.title(title[i]) plt.xticks([]) plt.yticks([]) plt.show()
图像阈值处理函数:
ret, dst = cv2.threshold(src, thresh, maxval, type)
src: 输入图,只能输入单通道图像,通常是灰度图dst: 输出图thresh: 阈值,是一个值,通常为127maxval: 当图像超过了阈值或低于阈值(由type决定),所赋予的值cv2.THRESH_BINARY 二值法,超过阈值thresh部分取maxval(设定的最大值),否则取0
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #opencv去除图像背景