opencv图像特效之毛玻璃_opencv毛玻璃效果_zjLOVEcyj的博客-程序员秘密

技术标签: python  cv  计算机视觉  opencv  

import cv2
import numpy as np
import random
img = cv2.imread("E:/code/conputer_visual/data/0.jpg", 1)
cv2.imshow("pre", img)
imginfo = img.shape
height = imginfo[0]
width = imginfo[1]
dst = np.zeros((height, width, 3), np.uint8)
mm = 4
for m in range(0, height):
    for n in range(0, width):
        if m > height-mm or n > width-mm:
            (b,g,r) = img[m, n]
            dst[m,n] = (b,g,r)
        else:
            index = int(random.random()*4)
            (b,g,r) = img[m+index, n+index]
        dst[m,n] = (b,g,r)
cv2.imshow("dst", dst)
cv2.waitKey()

在这里插入图片描述

原理: 将进行毛玻璃处理的区域的像素值替换为其附近4x4像素框中的随机某个像素值

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cyj5201314/article/details/114646608

智能推荐

js 数据结构(一):栈_夜已如歌_ok的博客-程序员秘密

栈栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈顶。现实生活中就有很多栈的例子。如下图的书本,这一摞书如果要取肯定是先去最上面的那一本,但它是最后一个放上去的,也就是栈顶的元素都是待添加或是待删除的。这就是后进先出的实际例子。栈的创建:我们创建一个类来表示栈。先声明...

男程序员写给女程序员的情书_avidar的博客-程序员秘密

我能抽象出整个世界... 但是我不能抽象出你... 因为你在我心中是那么的具体... 所以我的世界并不完整... 我可以重载甚至覆盖这个世界里的任何一种方法... 但是我却不能重载对你的思念... 也许命中注定了 你在我的世界里永远的烙上了静态的属性... 而我不慎调用了爱你这个方法... 当我义无返顾的把自己作为参数传进这个方法时... 我才发现爱上你是一个死循环... 它不停的返回对你的思念压入我心里的堆栈... 在这无尽的黑夜中... 我的内存里已经再也装不下别人... 我不停的向系统申请空间...

leetcode_406. Queue Reconstruction by Height 按身高h和比他高的人的个数k的二元组(h,k) 排队_queue<二元组>_你猜_哈哈的博客-程序员秘密

题目:Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in f

PyCharm.v1.x License_sdt0263的博客-程序员秘密

PyCharm.v1.x LicensekeygenUsername: caisong.comLicense:===== LICENSE BEGIN =====90689-1204201000003L7zwGXeVO9Em24bBMek8H21J8bLcmGDBv0o5QGJFBfvHaGeXifdM5RhCETJS4WLZSDbafl6yXh6zWEjKNo3PW===== LICENSE END =====

Android广播_android 广播_qijingwang的博客-程序员秘密

1.广播的分类(1)按照发送的方式分类标准广播 是一种异步的方式来进行传播的,广播发出去之后,所有的广播接收者几乎是同一时间收到消息的。他们之间没有先后顺序可言,而且这种广播是没法被截断的。 有序广播 是一种同步执行的广播,在广播发出去之后,同一时刻只有一个广播接收器可以收到消息。当广播中的逻辑执行完成后,广播才会继续传播。(2)按照注册的方式分类动态注册广播 顾名思义,就是在代码中注册的。 静态注册广播 动态注册要求程序必须在运行时才能进行,有一定的局限性,如果我们需要在

matlab 三维曲线曲面 meshgrid and surf_我是家家的博客-程序员秘密

x=0:0.1:2*pi;y=x;[X,Y]=meshgrid(x,y);Z=sin(X)+sin(Y);%3D splineplot3(X,Y,Z);%3D surfacefigure;surf(X,Y,Z)

随便推点

我的Java基础学习第十二天_栗子鱿鱼的博客-程序员秘密

一、异常异常:非正常运行@Test public void testHappenException() { int[] arr = {1,2,3,4,5}; for (int i = 1; i &lt;= 20; i++) { if (i == 15) { // ArrayIndexOutOfBoundsException int j = arr[100]; // 数组越界 } System.out.println("正常:"+ i); } }

学习backtrader笔记(1): _pickle.PicklingError: Can‘t pickle attribute lookup_量化人生路的博客-程序员秘密

2022年1月5日晚,在学习backtrader时,参考的是CSDN下载的资料&lt;Backtrader官方文档中文翻译.PDF&gt;.本人开发IDE软件用的是pycharm.当学习到参数优化这一节时用的资料的代码,在运行时报错.报错的提示是:_pickle.PicklingError: Can't pickle &lt;class '__main__.TestStrategy'&gt;: attribute lookup TestStrategy on __main__ failed然后就

递归算法 - 分治算法_Just_Paranoid的博客-程序员秘密

分治算法(divide and conquer)是一种递归算法,将一个大问题分成几个小问题,解决小问题,最终将小问题合并成大问题的解。

matlab实现窗函数,几种常见窗函数及其matlab程序实现.doc_weixin_39769767的博客-程序员秘密

几种常见窗函数及其matlab程序实现.doc 几种常见窗函数及其MATLAB程序实现2013121613582296人阅读评论0收藏举报分类MATLAB(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理...

mysql 中日韩 乱码_mysql字符集及乱码问题_院花有点甜的博客-程序员秘密

MySQL中涉及的几个字符集character-set-server/default-character-set:服务器字符集,默认情况下所采用的。character-set-database:当前数据库字符集。character-set-table:数据库表字符集。查看当前数据库字符集:show variables like character_set_database;优先级依次增加。所以一般...

顺序表---概念及结构、顺序表的各种操作:尾插、头插、插入指定位置、尾删、头删、删除指定位置、查找元素、下标与修改元素_-Coche-的博客-程序员秘密

顺序表的各种操作:顺序表的各种操作----尾插、头插、插入指定位置、尾删、头删、删除指定位置、查找元素、下标与修改元素package 顺序表;/** * Create with Darcula IDEA * Description: * * @Author CJP */public class MyArrayList { private int[] array; ...

推荐文章

热门文章

相关标签