import cv2
import copy
import os def filter_srcimg(dstimg):
ss=3
srcimg=copy.deepcopy(dstimg)
#aa=5
imgw=srcimg.shape[0]
imgh=srcimg.shape[1]
border_mat=[[0]*imgw]*imgh
for ddd in range(0,1):
for i in range(20,imgw-20):
for j in range(20,imgh-20):
loss=(8*float(srcimg[i][j][0])-float(srcimg[i-ss][j-ss][0])-float(srcimg[i-ss][j][0])-float(srcimg[i][j-ss][0])-float(srcimg[i-ss][j+ss][0])-float(srcimg[i+ss][j-ss][0])-float(srcimg[i][j+ss][0])-float(srcimg[i+ss][j][0])-float(srcimg[i+ss][j+ss][0]))/8
if loss>10 or srcimg[i][j][0]>180:
#print loss
#print "####,",srcimg[i][j][0]
border_mat[i][j]=1
#res=int((float(srcimg[i-aa][j-aa][0])+float(srcimg[i-aa][j][0])+float(srcimg[i][j-aa][0]))/3)
res=int(float(srcimg[i][j][0])-loss*3)
if res<0:
res=0
dstimg[i][j][0]=res
dstimg[i][j][1]=dstimg[i][j][0]
dstimg[i][j][2]=dstimg[i][j][0]
#return dstimg if __name__=='__main__':
for elem in os.listdir(os.getcwd()):
if '.py' not in elem:
img=cv2.imread(elem) cv2.imshow("",img)
cv2.waitKey(0) filter_srcimg(img)
cv2.imshow("",img)
cv2.waitKey(0)

注意事项:

1、cv2.imread返回类型

img=cv2.imread("ddd.png")

返回一个(高度,宽度,通道数)的ndarray

返回的ndarray中的数据类型是numpy.uint8,即8位无符号整数(0-255)

修改像素值:

img[0][0][0]=100

这里注意,因为ndarray中的类型为uint8,故赋的值上溢出(>255)或下溢出(<0)时,会自动取模,而不会报错!

2、深拷贝浅拷贝

(1)赋值时

对基本数据类型是值拷贝

对类是浅拷贝

如果对类进行值拷贝,需要使用深拷贝copy.deepcopy()

比较两个引用是否指向同一对象——用id()查看引用指向的地址,id()返回值为int

(2)函数传参时

与赋值时相同

对基本数据类型是值拷贝

输出是1

对类是浅拷贝

输出是[2,1,1]

【opencv】imread 赋值 深拷贝浅拷贝的更多相关文章

  1. 【转】Python中的赋值、浅拷贝、深拷贝介绍

    这篇文章主要介绍了Python中的赋值.浅拷贝.深拷贝介绍,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式,需要的朋友可以参考下   和很多语言一样,Python中 ...

  2. 关于python中赋值、浅拷贝、深拷贝之间区别的深入分析

    当重新学习了计算机基础课程<数据结构和算法分析>后再来看这篇自己以前写的博文,发现错误百出.python内置数据类型之所以会有这些特性,归根结底是它采用的是传递内存地址的方式,而不是传递真 ...

  3. Python中赋值、浅拷贝与深拷贝

    python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不 ...

  4. python直接赋值,浅拷贝和深拷贝

    本文参考自<Python 直接赋值.浅拷贝和深度拷贝解析> 定义 直接赋值:就是对象的引用(别名) 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象 深拷贝(deepcopy):co ...

  5. Python 赋值、浅拷贝和深拷贝

    初学Python,和C++还是有许多不同.直接赋值.浅拷贝和深拷贝,这三种拷贝对象的操作之间还是有许多的区别.Python语言的版本为2.7,在Pycharm中进行实验. 一.直接赋值 用下面的代码来 ...

  6. js对象的直接赋值、浅拷贝与深拷贝

    最近Vue项目中写到一个业务,就是需要把对话框的表单中的数据,每次点击提交之后,就存进一个el-table表格中,待多次需要的表单数据都提交进表格之后,再将这个表格提交,实现多个表单数据的同时提交,期 ...

  7. javascript 关于赋值、浅拷贝、深拷贝的个人理解

    关于赋值.浅拷贝.深拷贝,以前也思考良久,很多时候都以为记住了,但是,我太难了.今天我特地写下笔记,希望可以完全掌握这个东西,也希望可以帮助到任何想对学习这个东西的同学. 一.栈.堆.指针地址 栈内存 ...

  8. Python对象赋值、浅拷贝、深拷贝

    Python中,基本数据类型,理解为常见数据类型:布尔型.整型.浮点型.字符串.列表.元组.字典.集合,随语言不同而不同,但是根据在内存中存储方式的不同,区分开原子类型和容器类型. 对象赋值 对象的赋 ...

  9. Python - 对象赋值、浅拷贝、深拷贝的区别

    前言 Python 中不存在值传递,一切传递的都是对象的引用,也可以认为是传址 这里会讲三个概念:对象赋值.浅拷贝.深拷贝 名词解释 变量:存储对象的引用 对象:会被分配一块内存,存储实际的数据,比如 ...

随机推荐

  1. 手把手教你利用微软的Bot Framework,LUIS,QnA Maker做一个简单的对话机器人

    最近由于要参加微软亚洲研究院的夏令营,需要利用微软的服务搭建一个对话Bot,以便对俱乐部的情况进行介绍,所以现学了几天,搭建了一个简单的对话Bot,期间参考了大量的资料,尤其是下面的这篇博客: htt ...

  2. CSS(五):背景、列表、超链接伪类、鼠标形状控制属性

    一.背景属性 1.背景属性用来设置页面元素的背景样式. 2.常见背景属性 属性 描述 background-color 用来设置页面的背景色,取值如red,#ff0000 background-ima ...

  3. Web app root system property already set to different value 错误原因及解决

    http://yzxqml.iteye.com/blog/1761540 ——————————————————————————————————————————————————————————————— ...

  4. 组合数学 - BZOJ 3997 - TJOI2015

    TJOI2015 Problem's Link ---------------------------------------------------------------------------- ...

  5. 小结:A* & IDA* & 迭代深搜

    概要: 在dfs中,如果答案的深度很小但是却很宽,而且bfs还不一定好做的情况下,我们就综合bfs的优点,结合dfs的思想,进行有限制的dfs.在这里A*.IDA*和迭代深搜都是对dfs的优化,因此放 ...

  6. 【HDU】3622 Bomb Game(2-SAT)

    http://acm.hdu.edu.cn/showproblem.php?pid=3622 又是各种逗.. 2-SAT是一种二元约束,每个点可以置于两种状态,但只能处于一种状态,然后图是否有解就是2 ...

  7. 分享在github超酷超炫特效动画,不看你会懊悔的。

    有图有真相直接上效果图,有须要的朋友们能够到连接上去下载. 下载地址:https://github.com/ChrisRenke/DrawerArrowDrawable 下载地址:https://gi ...

  8. 搭建 Docker-Registry 私有仓库

    官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了.如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private R ...

  9. [ASK] brew install nginx

    .......... .......... Error: Permission denied - /usr/local/etc/openssl .......... .......... Cannot ...

  10. Effective C++ Item 9 Never call virtual functions during constrution or destruction

    Because such calls would never go to a more derived class than that of currently executing construto ...