把下面的图片融合,黑色背景保持,剩下的物体画在一起
import os import cv2 import numpy as np patha=r"D:gxqcodeweightliftingWeightLiftingCompetitions3145l_line_BW" pathb=r"D:gxqcodeweightliftingWeightLiftingCompetitions3145l_seg" pathc=r"D:gxqcodeweightliftingWeightLiftingCompetitions3161700006253759" newpath=r"D:gxqcodeweightliftingWeightLiftingCompetitions3145c" if not os.path.exists(newpath): os.mkdir(newpath) print(newpath) path_lista=os.listdir(patha) path_lista.sort() path_lista_len=len(path_lista) path_listb=os.listdir(pathb) path_listb.sort() path_listb_len=len(path_listb) path_listc=os.listdir(pathc) path_listc.sort() path_listc_len=len(path_listc) len=min(path_lista_len,path_listb_len,path_listc_len) for k in range(0,len): src1=cv2.imread(patha+r"\"+path_lista[k]) src1=np.array(src1) src2=cv2.imread(pathb+r"\"+path_listb[k]) src2=np.array(src2) src3=cv2.imread(pathc+r"\"+path_listc[k]) src3=np.array(src3) w=src1.shape[1] h=src1.shape[0] print(w,h) for i in range(0,h): for j in range(0,w): b,g,r=src2[i,j] if b!=0 and g!=0 and r!=0: src1[i][j]=src2[i][j] else: b,g,r=src3[i,j] if b!=0 and g!=0 and r!=0: src1[i][j]=src3[i][j] cv2.imwrite(newpath+r"\img_"+str(100000000+k)+".jpg",src1) #cv2.imshow('playground',src1) #cv2.waitKey() #cv.imwrite(newpath+r'\'+portion[0]+'.jpg',src1)
最后的效果如下:
如要将上图变成二值效果,即将黑色的不变,剩余的全部换成白色即可
import os import cv2 import numpy as np patha=r"D:gxqcodeweightliftingWeightLiftingCompetitions3169700006253759" newpath=r"D:gxqcodeweightliftingWeightLiftingCompetitions31691" if not os.path.exists(newpath): os.mkdir(newpath) print(newpath) path_lista=os.listdir(patha) path_lista.sort() path_lista_len=len(path_lista) for k in range(0,path_lista_len): src1=cv2.imread(patha+r"\"+path_lista[k]) src1=np.array(src1) w=src1.shape[1] h=src1.shape[0] print(w,h) for i in range(0,h): for j in range(0,w): b,g,r=src1[i,j] #if not(all(src1[i,j]==[0,0,0])): if b!=0 and g!=0 and r!=0: src1[i][j]=[255,255,255] cv2.imwrite(newpath+r"\img_"+str(100000000+k)+".jpg",src1)
效果如下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)