gray

matplotlib中的imshow()

人走茶凉 提交于 2020-01-31 07:24:35
1 import matplotlib.pyplot as plt 2 plt.imshow(x,cmap) x表示要显示的图片变量,cmap为颜色图谱,默认为RGB(A)颜色空间,也可以指定,gray是灰度图 1 plt.imshow(img,'gray') 在窗口上绘制完这个图片后,如果要把窗口显示出来,就调用plt.show() 但在notebook中也可以不写这个语句,会自动显示窗口 具体用法见:https://www.cnblogs.com/denny402/p/5122594.html 来源: https://www.cnblogs.com/program-ai-cv-ml-se-fighting/p/11696990.html

opencv python:图像二值化

送分小仙女□ 提交于 2020-01-31 00:47:29
import cv2 as cv import numpy as np import matplotlib.pyplot as plt # 二值图像就是将灰度图转化成黑白图,没有灰,在一个值之前为黑,之后为白 # 有全局和局部两种 # 在使用全局阈值时,我们就是随便给了一个数来做阈值,那我们怎么知道我们选取的这个数的好坏呢?答案就是不停的尝试。 # 如果是一副双峰图像(简 单来说双峰图像是指图像直方图中存在两个峰)呢? # 我们岂不是应该在两个峰之间的峰谷选一个值作为阈值?这就是 Otsu 二值化要做的。 # 简单来说就是对 一副双峰图像自动根据其直方图计算出一个阈值。 # (对于非双峰图像,这种方法 得到的结果可能会不理想)。 def threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # 这个函数的第一个参数就是原图像,原图像应该是灰度图。 # 第二个参数就是用来对像素值进行分类的阈值。 # 第三个参数就是当像素值高于(有时是小于)阈值时应该被赋予的新的像素值 # 第四个参数来决定阈值方法,见threshold_simple() # ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_BINARY) ret, binary = cv

格雷码加法器

强颜欢笑 提交于 2020-01-30 12:37:33
1、概述   格雷码执行加1操作最多只会变1位,可用在多位地址指针中消除毛刺。 2、verilog代码 1 `timescale 1ns / 1ps 2 3 module gray_adder 4 #(parameter length = 5) 5 ( 6 input clk, 7 input rstn, 8 input inc, 9 output [length-1:0] Gray 10 ); 11 12 reg [length-1:0] Gray_reg; 13 reg [length-1:0] Gray_next_reg; 14 15 reg [length-1:0] Bin_reg; 16 reg [length-1:0] Bin_next_reg; 17 18 integer i; 19 20 always @(posedge clk or negedge rstn) begin 21 if(!rstn) begin 22 Gray_reg <= 0; 23 end 24 else begin 25 Gray_reg <= Gray_next_reg; 26 end 27 end 28 29 30 always @(*) begin 31 Bin_reg[length-1] = Gray_reg[length-1]; // 格雷码转二进制码 32 for(i=length

【无聊】opencv与图像处理基础

喜你入骨 提交于 2020-01-30 10:12:48
1.教程: 数学基础教材: 基础的微积分,线性代码,矩阵论,概率论 等,所以这些教材就不推荐了,⼤家⾃⾏了解。倒是关于传统的机器学习,推荐两本书, ⼀本是 模式识别 ,⼀本是 统计学习 。 数字图像处理: 冈萨雷斯的这本《数字图像处理》,是信号处理等专业的必修教材,是把图像处理基础理论与软件实践⽅法相结合的第⼀本书。 因为本书附带有 matlab 代码,⼤量来⾃于 MathWorks 公司的图像处理⼯具箱,可以边学边⽤。这本书基本上讲述了经典图像处理的主要内容,从亮度变换、线性和⾮线性空间滤波、图像增强与压缩、形态学图像处理、图像分割与边界等等,涵盖了领域内最基础的图像概念。 Opencv 欲学习图像处理, opencv 是绝对绕不开的,⼤部分⼯业界的代码⾥⾯⼀定有 opencv。opencv 经历过从以 c 语⾔为主的 1.0 版本,到以 c++为主的 2.0, 3.0 版本,4.0。直接从3开始。 .其他系统性的资料 3 图像基础概念与实践 3.1 图像位数 计算机是采⽤ 0/1 编码的系统,数字图像也是利⽤ 0/1 来记录信息,我们平常接触的图像都是 8 位数图像, 包含 0~255 灰度,其中 0,代表最⿊, 1,表⽰最⽩ 3.2 彩色空间 图像有灰度图有彩⾊图,灰度图即只包含亮度信息,⽽彩⾊图不仅包含亮度信息还包含颜⾊信息。灰度图不需要多说,彩⾊图平常我们接触的是 RGB

Opencv之提取图像轮廓

孤街浪徒 提交于 2020-01-28 08:41:16
提取图像轮廓 cv2.findContours(img,mode,method) mode:轮廓检索模式 RETR_EXTERNAL :只检索最外面的轮廓; RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中; RETR_CCOMP:检索所有的轮廓,并将他们组织为两层:顶层是各部分的外部边界,第二层是空洞的边界; RETR_TREE(最常用):检索所有的轮廓,并重构嵌套轮廓的整个层次; method:轮廓逼近方法 CHAIN_APPROX_NONE:以Freeman链码的方式输出轮廓,所有其他方法输出多边形(顶点的序列)。 CHAIN_APPROX_SIMPLE(最常用):压缩水平的、垂直的和斜的部分,也就是,函数只保留他们的终点部分。 以下图举例: 寻找并绘制轮廓 首先导入图像: # 为了更高的准确率,使用二值图像。 img = cv2 . imread ( 'contours.png' ) gray = cv2 . cvtColor ( img , cv2 . COLOR_BGR2GRAY ) ret , thresh = cv2 . threshold ( gray , 127 , 255 , cv2 . THRESH_BINARY ) cv_show ( thresh , 'thresh' ) 使用cv2.findContours()函数将轮廓提取出来: #

OpenCV python 图片二值化

六月ゝ 毕业季﹏ 提交于 2020-01-28 07:50:29
OpenCV python 图片二值化 处理原图[source.jpg] 代码: import cv2 def main ( ) : # 1.导入图片 转换为灰度图片 img_src = cv2 . imread ( "source.jpg" ) img_gray = cv2 . cvtColor ( img_src , cv2 . COLOR_BGR2GRAY ) # 2.执行二值化 thr , img_rst = cv2 . threshold ( img_gray , 127 , 255 , cv2 . THRESH_BINARY ) # 3.显示结果 print ( "thr=" , thr ) cv2 . imshow ( "img_src" , img_src ) cv2 . imshow ( "img_rst" , img_rst ) cv2 . waitKey ( ) cv2 . destroyAllWindows ( ) if __name__ == '__main__' : main ( ) 结果图片: 来源: CSDN 作者: 廷益--飞鸟 链接: https://blog.csdn.net/weixin_45875105/article/details/103641762

图像处理之opencv识别人脸

断了今生、忘了曾经 提交于 2020-01-27 14:57:21
文章目录 1、opencv识别单张人脸 1.1、读取图片 1.2、识别人脸 1.2.1、下载人脸识别算法 1.2.2、人脸检测 2、opencv识别多张人脸 2.1、导入计算机视觉库opencv和人脸识别算法 2.2、读入并展示图片 2.3、图片灰色处理 2.4、检测人脸 2.5、画出人脸的范围 2.6、调节显示窗口大小 2.7、识别图像 1、opencv识别单张人脸 1.1、读取图片 读取展示图片通常分为三个部分: 1、读入图片 2、展示图片 3、完成后要释放资源 image = cv2 . imread ( './image.jpg' ) cv2 . namedWindow ( "camera" , 0 ) #设置图片手动调节大小 cv2 . imshow ( "camera" , image ) cv2 . waitKey ( 0 ) #设置任意键退出程序 cv2 . destroyAllWindows ( ) cv2.namedWindow("camera", 0) 用来手动调节图片窗口的大小 1.2、识别人脸 1.2.1、下载人脸识别算法 自己写人脸识别的算法是不可能的,但我们可以直接到github上下载大神写好的人脸识别算法。 人脸识别算法链接: https://github.com/opencv/opencv/blob/master/data/haarcascades

记账本开发记录——第八天(2020.1.26)

假装没事ソ 提交于 2020-01-26 21:10:30
在疫情如此严重的现在,在家安心学习。 昨天初一守夜无聊的时候学完了JQ剩下的部分。这里讲到了一个插件validate。使用这个插件可以很方便的进行表单的检验,并且具有很好看的效果样式。以下是代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>网站注册页面</title> 6 <style> 7 #contanier{ 8 border: 0px solid white; 9 width: 1300px; 10 margin: auto; 11 } 12 13 #top{ 14 border: 0px solid white; 15 width: 100%; 16 height: 50px; 17 } 18 #menu{ 19 border: 0px solid white; 20 height: 40px; 21 background-color: black; 22 padding-top: 10px; 23 margin-bottom: 15px; 24 margin-top: 10px; 25 } 26 .top{ 27 border: 0px solid white; 28 width: 405px; 29 height: 100%; 30 float: left; 31

Gray code(格雷码)【代码实现】

不羁岁月 提交于 2020-01-25 09:34:35
C int gray_encode ( int n ) { return n ^ ( n >> 1 ) ; } int gray_decode ( int n ) { int p = n ; while ( n >>= 1 ) p ^ = n ; return p ; } 示例: # include <stdio.h> /* Simple bool formatter, only good on range 0..31 */ void fmtbool ( int n , char * buf ) { char * b = buf + 5 ; * b = 0 ; do { * -- b = '0' + ( n & 1 ) ; n >>= 1 ; } while ( b != buf ) ; } int main ( int argc , char * * argv ) { int i , g , b ; char bi [ 6 ] , bg [ 6 ] , bb [ 6 ] ; for ( i = 0 ; i < 32 ; i ++ ) { g = gray_encode ( i ) ; b = gray_decode ( g ) ; fmtbool ( i , bi ) ; fmtbool ( g , bg ) ; fmtbool ( b , bb ) ; printf ( "

C# WPF聊天界面(3/3)

ε祈祈猫儿з 提交于 2020-01-24 07:12:57
微信公众号: Dotnet9 ,网站: Dotnet9 ,问题或建议: 请网站留言 , 如果对您有所帮助: 欢迎赞赏 。 C# WPF聊天界面(3/3) 阅读导航 本文背景 代码实现 本文参考 1.本文背景 系列文章最后一篇,一个完整的聊天界面。当然只看效果,具体的项目需要将左侧好友列表、中间会话列表、右侧联系人简况做成MVVM绑定的形式,做成模板才是一个完整的项目,本系列只是对界面的一个设计参考。 前面两篇文章: C# WPF联系人列表(1/3) C# WPF简况(2/3) 三篇文章最终效果如下: 2.代码实现 使用 .Net CORE 3.1 创建名为 “Chat” 的WPF项目,添加 MaterialDesignThemes(3.0.1)、MaterialDesignColors(1.2.2)两个Nuget库,文中图片已全部替换为站长网站logo图片外链,直接Copy文中代码即可运行,大家亦可下载原作者源码研究学习,文末会给出源码下载链接。 2.1 引入MD控件样式文件 使用MD控件的常规操作,需要在App.xaml中引入4个样式文件: <Application x:Class="Chat.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas