4. Open Source CV image beautification

4.1. OpenCV repair image

  1. Image inpainting is a class of algorithms in computer vision whose goal is to fill areas within an image or video. The area is identified using a binary mask, and filling is usually done according to the area boundary information that needs to be filled. The most common application of image restoration is to restore old scanned photos. It is also used to remove small unwanted objects in images.
  2. In OpenCV, dst = cv2.inpaint(src, inpaintMask, inpaintRadius, flags) is provided to repair the image,

Parameter meaning:

src: source image, which is the image that needs to be repaired

inpaintMask: Binary mask indicating the pixels to be inpainted.

dst: result image

inpaintRadius: Indicates the radius of the repair

flags : Repair algorithm, mainly INPAINT_NS (Navier-Stokes based method) or INPAINT_TELEA (Fast marching based method)

Navier-Stokes based fixes should be slower and tend to produce more ambiguous results than fast marching methods. In practice, we have not found this to be the case. INPAINT_NS produced better results in our tests and was also slightly faster than INPAINT_TELEA.

  1. Code and actual effect display

(1) First, we first add damage to the intact picture, which can be understood as modifying the pixel value of a specific part of it

run the program

 

After running, a picture will be generated, which is regarded as a damaged picture of the original picture.

image-20220427150203655

(2) repair the photo you just created, first read, then create the mask, and finally use the function to repair it

run the program

 

image-20220427150312390

As shown in the figure, the left is before repair, the middle is the mask image, and the right is the original image after repair.

4.2. OpenCV image brightness enhancement

  1. Implementation process: Amplify the three-channel value of each pixel synchronously, while keeping the channel value between 0-255. In fact, it is to traverse each pixel, add and subtract values to them, and then judge the three channels. Whether rgb is in the range of 0-255, if it is greater or less than 255 or 0.
  2. Code and actual effect display

run the program

 

image-20220427150346960

The picture on the left is the original picture, and the picture on the back is the photo after increasing the brightness.

4.3. OpenCV image microdermabrasion and whitening

  1. OpenCV realizes the function of microdermabrasion and whitening of pictures. The principle of implementation is basically the same as the principle of "1.20 OpenCV picture brightness enhancement", but here we do not need to process the r value, just follow this formula, p = p(x)*1.4+ y, where p(x) represents the b channel or g channel, and y represents the value that needs to be increased or decreased. Similarly, after adding the value, we need to judge the value.
  2. Code and actual effect display

run the program

image-20220427150446581