Opencv 马赛克和毛玻璃效果与图片融合的实现

1.马赛克效果

马赛克的基本原理就是,用某一个区域的某一个像素点替代这个区域所有的像素点,从而导致图片出现模糊的效果,如下:

import cv2

# 马赛克效果
img = cv2.imread(filename='../anqila21.jpg',flags=1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
flag = 2   # 系数,系数越小,马赛克的效果越不明显
for m in range(26,height):
    for n in range(140,880):
        if m%flag==0 and n%flag==0:
            for i in range(0,flag):
                for j in range(0,flag):
                    (b,g,r) = img[m,n]
                    img[i+m,j+n] = (b,g,r)

cv2.imshow('dst',img)
cv2.waitKey(0)

2. 毛玻璃效果

import cv2
import numpy as np
import random

# 毛玻璃效果
img = cv2.imread(filename='../anqila21.jpg',flags=1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dst = np.zeros((height,width,3),np.uint8)
for i in range(height-8):
    for j in range(width-8):
        index = int(random.random()*8)  # 生成0-8之间的随机数(不包括8)
        dst[i, j] = img[i+index,j+index]
cv2.imshow('dst',dst)
cv2.waitKey(0)

3. 图片的融合

就是将两张图片融合到一张图片上,即可看到第一张图片的效果,也可以看到第二张图片的效果。

import cv2

img_1 = cv2.imread(filename='../anqila21.jpg',flags=1)
img_2 = cv2.imread(filename='../huanghe.jpg',flags=1)
imgInfo = img_1.shape
height = imgInfo[0]
width = imgInfo[1]
# roi
roi = 0.5
dst = cv2.addWeighted(img_1,roi,img_2,(1-roi),0)
cv2.imshow('dst',dst)
cv2.waitKey(0)

算法实现

import cv2
import numpy as np

img_1 = cv2.imread(filename='../anqila21.jpg',flags=1)
img_2 = cv2.imread(filename='../huanghe.jpg',flags=1)
imgInfo = img_1.shape
height = imgInfo[0]
width = imgInfo[1]
# roi
roi = 0.5
dst = np.zeros((height,width,3),np.uint8)

for i in range(height):
    for j in range(width):
        (b1,g1,r1) = img_1[i,j]
        (b2,g2,r2) = img_2[i,j]
        dst[i,j] = (int(b1*roi+b2*(1-roi)),int(g1*roi+g2*(1-roi)),int(r1*roi+r2*(1-roi)))

cv2.imshow('dst',dst)
cv2.waitKey(0)

以上就是Opencv 马赛克和毛玻璃效果与图片融合的实现的详细内容,更多关于Opencv 的资料请关注我们其它相关文章!

(0)

相关推荐

  • OpenCV实现马赛克和毛玻璃滤镜效果

    本文为大家分享了OpenCV实现马赛克和毛玻璃滤镜的具体代码,供大家参考,具体内容如下 一.马赛克效果 马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内随机选取的一个像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓. 以下OpenCV程序实现马赛克效果,通过鼠标左键在图像上划定马赛克的矩形框. #include <core\core.hpp> #include <highgui\highgui.hpp> using namespace cv; Mat i

  • OpenCV实现马赛克和毛玻璃滤镜特效

    本文实例为大家分享了OpenCV实现马赛克和毛玻璃滤镜特效的具体代码,供大家参考,具体内容如下 一.马赛克效果 马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内随机选取的一个像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓. 以下OpenCV程序实现马赛克效果,通过鼠标左键在图像上划定马赛克的矩形框. 代码: #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #

  • python使用opencv实现马赛克效果示例

    本文实例讲述了python使用opencv实现马赛克效果.分享给大家供大家参考,具体如下: 最近要实现opencv视频打马赛克,在网上找了一下基本是C++的实现,好在原理一样,下面给出python实现. 原理和注意点,我都写在注释里了 import cv2 ##马赛克 def do_mosaic(frame, x, y, w, h, neighbor=9): """ 马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内左上像素点的颜色代替,这样可以模糊细节,但是

  • Opencv 马赛克和毛玻璃效果与图片融合的实现

    1.马赛克效果 马赛克的基本原理就是,用某一个区域的某一个像素点替代这个区域所有的像素点,从而导致图片出现模糊的效果,如下: import cv2 # 马赛克效果 img = cv2.imread(filename='../anqila21.jpg',flags=1) imgInfo = img.shape height = imgInfo[0] width = imgInfo[1] flag = 2 # 系数,系数越小,马赛克的效果越不明显 for m in range(26,height):

  • iOS实现毛玻璃效果(无需要第三方)

    本文实例分享两种iOS毛玻璃效果设置的方法,不需要任何第三方,先看效果: 原图: 方法一(iOS8系统方法): 方法二: 下面是示例代码: #import "ViewController.h" @interface ViewController () { UIImageView *_imageView; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _imageView

  • iOS毛玻璃效果的实现及图片模糊效果的三种方法

    App设计时往往会用到一些模糊效果或者毛玻璃效果,iOS目前已提供一些模糊API可以让我们方便是使用. 话说苹果在iOS7.0之后,很多系统界面都使用了毛玻璃效果,增加了界面的美观性,比如下图的通知中心界面; 但是其iOS7.0的SDK并没有提供给开发者实现毛玻璃效果的API,所以很多人都是通过一些别人封装的框架来实现,后面我也会讲到一个; 其实在iOS7.0(包括)之前还是有系统的类可以实现毛玻璃效果的, 就是 UIToolbar这个类,并且使用相当简单,几行代码就可以搞定. 下面是代码实现:

  • IOS图片设置毛玻璃效果

    推荐阅读:ios毛玻璃效果的实现及图片模糊效果的三种方法 废话不多说了,直接给大家贴代码了,具体代码如下所示: // 创建需要的毛玻璃特效类型 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; // 毛玻璃view 视图 UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blurEf

  • Android学习教程之图片毛玻璃效果(4)

    本教程为大家分享了Android毛玻璃效果的具体代码,供大家参考,具体内容如下 BlurimageActivity.java代码: package com.siso.crazyworld; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivit

  • Android 实现图片模糊、高斯模糊、毛玻璃效果的三种方法

    在前几天写过一个使用glide-transformations的方法实现高斯模糊的方法,今天偶然间有发现一个大神写的另一个方法,感觉挺不错的,分享一下: 效果图: 原文链接:点击访问 这使用也很简单,导入依赖,使用模糊方法就行,就这两步搞定 依赖: compile 'net.qiujuer.genius:blur:2.0.0-beta4' 实现方法有三种,第一个是Java实现的,第二个和第三个是调用C语言实现的 ,具体的区别也就是代码执行的耗时操作时间,从图片中可以看出Java使用时间远大于c运

  • Android模糊处理实现图片毛玻璃效果

    本文实例讲解了Android 虚化图片.模糊图片.图片毛玻璃效果的实现方法,具体内容如下 效果如图: 在Android可以用RenderScript方便的实现这个方法: private void blur(Bitmap bkg, View view, float radius) { Bitmap overlay = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8

  • 利用Flutter实现背景图片毛玻璃效果实例

    目录 前言 使用 canvas 绘制图片 更改绘制图片的绘制范围 毛玻璃效果实现 总结 前言 继续我们绘图相关篇章,这次我们来看看如何使用 CustomPaint 实现毛玻璃背景图效果.毛玻璃背景图其实就是将图片进行一定程度的模糊,背景图经过模糊后更加虚幻,使得前景和后景就会有层次感.相比直接加蒙层的效果来说,毛玻璃看起来更加好看一些.下面是背景图处理前后的对比,我们的前景图片的透明度并没有改变,但是背景图模糊虚化后,感觉前景更加显眼了一样. 本篇涉及如下内容: 使用 canvas 绘制图片.

随机推荐