图像处理(在灰度图像中添加颜色)

时间:2019-04-17 08:07:18

标签: python

比较两个图像,以查看前一个图像的像素是否为白色,而后一个图像的像素为白色。如果正在创建的新图像的像素是白色,则前一个图像的像素是白色,而后一个图像的像素是黑色,如果黑色图像中的像素是黑色,而后一个图像中的像素是白色,如果上一个图像中的像素为黑色,而后一个图像中的像素为黑色,则程序将创建黑色。

我认为问题在于原始图像只有两个值(黑色,白色),因此如果我尝试将其颜色更改为红色或蓝色或其他颜色,则会出现问题...

import os
import glob
import cv2
import numpy as np
from PIL import Image

def comparing(bmp_before_img,bmp_after_img,path_after):
    save_file_name = path_after
    annot = np.zeros((bmp_before_img.shape[0], bmp_after_img.shape[1]), dtype=np.uint8)

    for j in range(256):
        for k in range(256):

            if bmp_after_img[j,k,1] != 0 and bmp_before_img[j,k,1] != 0:
                annot[j,k] = bmp_after_img[j,k,1]
            elif bmp_after_img[j,k,1] != 0 and bmp_before_img[j,k,1] == 0:
                annot[j,k] = (255,0,0)
            elif bmp_after_img[j,k,1] == 0 and bmp_before_img[j,k,1] != 0:
                annot[j,k] = (0,0,255)
            else:
                annot[j,k] = bmp_after_img[j,k,1]

    cv2.imwrite(save_file_name, annot)

path_before =''
path_after =''
bmp_before_list = glob.glob(os.path.join(path_before,'*.bmp'))
bmp_after_list = glob.glob(os.path.join(path_after,'*.bmp'))
img = cv2.imread(bmp_before_list[3])
cv2.imshow('',img)

if len(bmp_before_list) >= len(bmp_after_list):
    for i in range(0,len(bmp_after_list)):
        bmp_before_list = str(bmp_before_list[i])
        bmp_after_list = str(bmp_after_list[i])
        bmp_before_img = cv2.imread(bmp_before_list)
        bmp_after_img = cv2.imread(bmp_after_list)
        comparing(bmp_before_img,bmp_after_img,path_after)
else:
    for j in range(0,len(bmp_before_list)):
        bmp_before_list = str(bmp_before_list[j])
        bmp_after_list = str(bmp_after_list[j])
        bmp_before_img = cv2.imread(bmp_before_list)
        bmp_after_img = cv2.imread(bmp_after_list)
        comparing(bmp_before_img,bmp_after_img,path_after)

0 个答案:

没有答案