A collection of easy-to-use image / video filters.
1, SemanticImage is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SemanticImage'
2, Import and initialize SemanticImage
```swift
import SemanticImage
let semanticImage = SemanticImage()
Requires iOS 14 or above
let maskImage:UIImage? = semanticImage.personMaskImage(uiImage: yourUIImage)
let swappedImage:UIImage? = sematicImage.swapBackgroundOfPerson(personUIImage: yourUIImage, backgroundUIImage: yourBackgroundUIImage)
let blurredPersonImage:UIImage? = sematicImage.personBlur(uiImage:UIImage, intensity:Float)
// Blur intensity: 0~100
let prominentMaskImage:UIImage? = sematicImage.saliencyMask(uiImage:image)
let backgroundSwapImage:UIImage? = sematicImage.saliencyBlend(objectUIImage: image, backgroundUIImage: bgImage)
let faceImage:UIImage? = sematicImage.faceRectangle(uiImage: image)
let bodyImage:UIImage? = sematicImage.humanRectangle(uiImage: image)
let faceImages:[UIImage] = sematicImage.faceRectangles(uiImage: image)
let bodyImages:[UIImage] = sematicImage.humanRectangles(uiImage: image)
let animalImage:UIImage? = sematicImage.animalRectangle(uiImage: image)
let animalImages:[UIImage] = sematicImage.animalRectangles(uiImage: image)
guard let ciFilter = CIFilter(name: "CIEdgeWork", parameters: [kCIInputRadiusKey:3.0]) else { return }
sematicImage.ciFilterVideo(videoURL: url, ciFilter: ciFilter, { err, processedURL in
// Handle processedURL in here.
})
// This process takes about the same time as the video playback time.
sematicImage.swapBackgroundOfPersonVideo(videoURL: url, backgroundUIImage: uiImage, { err, processedURL in
// Handle processedURL in here.
})
// This process takes about the same time as the video playback time.
sematicImage.swapBGOfSalientObjectVideo(videoURL: url, backgroundUIImage: uiImage, { err, processedURL in
// Handle processedURL in here.
})
// This process takes about the same time as the video playback time.
semanticImage.applyProcessingOnVideo(videoURL: url, { ciImage in
// Write the processing of ciImage (i.e. video frame) here.
return newImage
}, { err, editedURL in
// The processed video URL is returned
})
Daisuke Majima
Freelance iOS programmer from Japan.
PROFILES:
WORKS:
BLOGS: Medium
CONTACTS: rockyshikoku@gmail.com
SemanticImage is available under the MIT license. See the LICENSE file for more info.