示例#1
0
def main(argv):
    if len(argv) == 0:
        print "Please provide an image. Example: Create.py image.png"

    sourceImagelocation = argv[0]
    windowNameFilter = "Filter"
    windowNameAll = "All"
    TotalImageSize = (4, 3)

    allFilters = list()

    allFilters.append(Portrait.Portrait(sourceImagelocation))
    allFilters.append(Portrait.SobelXFilter(sourceImagelocation))
    allFilters.append(Portrait.SobelYFilter(sourceImagelocation))
    allFilters.append(Portrait.SobelFilter(sourceImagelocation))
    allFilters.append(Portrait.LaPlacianFilter(sourceImagelocation))
    allFilters.append(Portrait.CannyEdgeFilter(sourceImagelocation))
    allFilters.append(Portrait.BlurFilter(sourceImagelocation))
    allFilters.append(Portrait.GaussianBlurFilter(sourceImagelocation))
    allFilters.append(Portrait.ThresholdFilter(sourceImagelocation))
    allFilters.append(Portrait.ErodeFilter(sourceImagelocation))
    allFilters.append(Portrait.DilateFilter(sourceImagelocation))

    totalImageCol = 0
    totalImageRow = 0

    image = allFilters[0].GetImage()
    imageHeight = image.shape[0]
    imageWidth = image.shape[1]
    imageDepth = image.shape[2]

    imageAll = np.zeros((imageHeight * TotalImageSize[1],
                         imageWidth * TotalImageSize[0], imageDepth),
                        dtype=np.uint8)

    for filter in allFilters:
        image = filter.GetImage()
        imageAll[totalImageRow * imageHeight:(totalImageRow + 1) * imageHeight,
                 totalImageCol * imageWidth:(totalImageCol + 1) *
                 imageWidth] = image
        #cv2.imshow(windowNameFilter, image)
        #cv2.waitKey()
        totalImageCol += 1
        if totalImageCol >= TotalImageSize[0]:
            totalImageCol = 0
            totalImageRow += 1
            if totalImageRow >= TotalImageSize[1]:
                break

    cv2.destroyWindow(windowNameFilter)

    scale = 600.0 / max(imageAll.shape[0], imageAll.shape[1])

    filename, file_extension = os.path.splitext(sourceImagelocation)

    cv2.imwrite(filename + "_Collage" + file_extension, imageAll)
    print "Written File: " + filename + "_Collage" + file_extension
    imageAll = cv2.resize(
        imageAll,
        (int(imageAll.shape[1] * scale), int(imageAll.shape[0] * scale)))
示例#2
0
 def face_(self):
     if s.is_empty():
         self.open()
     else:
         self.make_duplicate()
         path = s.peek()
         whitening = self.whitening.value()
         smoothing = self.smoothing.value()
         thinface = self.thinface.value()
         shrink_face = self.shrink_face.value()
         enlarge_eye = self.enlarge_eye.value()
         remove_eyebrow = self.remove_eyebrow.value()
         p = Portrait()
         p.face_beautify(path, whitening, smoothing, thinface, shrink_face, enlarge_eye, remove_eyebrow)
         self.show_()