gray

python-opencv图像标准化处理

[亡魂溺海] 提交于 2019-12-08 02:33:11
python-opencv图像标准化处理 来不及解释了,直接上代码吧 import cv2 import numpy as np #读取图像 image = cv2 . imread ( 'myid.jpg' ) #对图像进行灰度化处理 gray = cv2 . cvtColor ( image , cv2 . COLOR_BGR2GRAY ) cv2 . imshow ( "img0" , gray ) #对灰度化图像进行标准化,该函数的参数依次是:输入数组,输出数组,最小值,最大值,标准化模式。 cv2 . normalize ( gray , gray , 0 , 255 , cv2 . NORM_MINMAX ) cv2 . imshow ( "img1" , gray ) cv2 . waitKey ( 0 ) cv2 . destroyAllWindows ( ) 来源: CSDN 作者: 小左先生 链接: https://blog.csdn.net/qq_38680752/article/details/99694395

openCV实现图像的轮廓检测以及外接矩形

柔情痞子 提交于 2019-12-08 02:28:39
前两篇博文分别介绍了图像的边缘检测和轮廓检测,本文接着介绍图像的轮廓检测和轮廓外接矩形: 一、代码部分: // extract_contours.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<cv.h> #include<highgui.h> using namespace cv; using namespace std ; int _tmain( int argc, _TCHAR* argv[]) { //load src image string img_name= "..\\image_norm\\71253.jpg" ; Mat image=imread(img_name); imshow( "src_image" ,image); cvWaitKey( 0 ); //convert into gray image Mat gray(image.size(),CV_8U); cvtColor(image,gray,CV_BGR2GRAY); imshow( "gray" ,gray); cvWaitKey( 0 ); //convert into bin image threshold(gray,gray, 128 , 255 ,THRESH_BINARY); //转换成2值图像 imshow( "binary"

膨胀腐蚀的应用:消除噪声

会有一股神秘感。 提交于 2019-12-07 15:13:33
效果图: 代码: #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; Mat src, dst,dst2; //膨胀腐蚀的应用:消除噪声 int main() { //原图 src = imread(".//pic//ABC.png", IMREAD_UNCHANGED); namedWindow("input image", CV_WINDOW_AUTOSIZE); imshow("input image", src); //转成灰度图 Mat gray_src; cvtColor(src, gray_src, CV_BGR2GRAY); imshow("gray image", gray_src); //转成二值图 Mat binImg; //255:二值图像的最大值 //ADAPTIVE_THRESH_MEAN_C:自适应方法 //THRESH_BINARY:阈值类型 //15:块大小 //取反可以把目标变白,灰度值大 adaptiveThreshold(~gray_src, binImg, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, 0); imshow(

OpenCV像素级操作,灰度图像以及三色图像的反色处理

☆樱花仙子☆ 提交于 2019-12-06 16:36:55
#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; int main() { Mat src; //原图 src = imread(".//pic//test.jpg",IMREAD_UNCHANGED); if (src.empty()) { cout << "can not load image" << endl; return -1; } namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); //单通道图像反色处理 Mat gray_src; cvtColor(src, gray_src, CV_BGR2GRAY); namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("output", gray_src); int height = gray_src.rows; int width = gray_src.cols; /*for (int row = 0; row < height; row++) { for (int col = 0; col < width; col++) { int

图像处理

天大地大妈咪最大 提交于 2019-12-05 20:19:34
import cv2 as cv import numpy as np # 全局阈值 def threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) # 把输入图像灰度化 # 直接阈值化是对输入的单通道矩阵逐像素进行阈值分割。 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_TRIANGLE) print("threshold value %s"%ret) cv.namedWindow("binary0", cv.WINDOW_NORMAL) cv.imshow("binary0", binary) # 局部阈值 def local_threshold(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) # 把输入图像灰度化 # 自适应阈值化能够根据图像不同区域亮度分布,改变阈值 binary = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 25, 10) cv.namedWindow("binary1", cv.WINDOW_NORMAL)

使用OpenCL提升OpenCV图像处理性能 | speed up opencv image processing with OpenCL

非 Y 不嫁゛ 提交于 2019-12-05 19:05:51
本文首发于个人博客 https://kezunlin.me/post/59afd8b3/ ,欢迎阅读最新内容! speed up opencv image processing with OpenCL <!--more--> Guide OpenCL is a framework for writing programs that execute on these heterogenous platforms. The developers of an OpenCL library utilize all OpenCL compatible devices (CPUs, GPUs, DSPs, FPGAs etc) they find on a computer / device and assign the right tasks to the right processor. Keep in mind that as a user of OpenCV library you are not developing any OpenCL library. In fact you are not even a user of the OpenCL library because all the details are hidden behind the transparent API

Matlab中image、imagesc和imshow函数用法解析

狂风中的少年 提交于 2019-12-05 07:01:02
来源:https://blog.csdn.net/zhuiyuanzhongjia/article/details/79621813 1、显示RGB图像 相同点:这三个函数都是把m*n*3的矩阵中的数值当做RGB值来显示的。 区别:imshow将图像以原始尺寸显示,image和imagesc则会对图像进行适当的缩放(显示出来的尺寸大小)。 2、显示灰度图像 说明:先搞明白什么是索引图像?(灰度图像也是索引图像的一种) 当用Matlab中的imread函数将图像读入并存入矩阵时,我们知道如果是RGB图像,得到是m*n*3的矩阵,但如果是索引图像,得到就是m*n的矩阵,这个矩阵的每个元素只是1个数值,那么怎么确定它的RGB值来显示图像呢?这就需要colormap了,colormap是一个m*3的矩阵,每一行有3列元素构成RGB组,也就是一种颜色,一个m*3的colormap中有m中颜色,而索引图像存储的数值和colormap中的行号对应起来就可以像RGB那样显示图片了,至于对应方法,可以直接对应(比如1对应1,2对应2)也可以是线性映射对应(比如[-128,128]映射到[1,256])。还有一点要说明的是,默认情况下每一个figure都有且仅有一个colormap,而且默认的是 jet(64),可在figure窗口通过,edit->colormap...查看

LBP扩展与多尺度表达(二)

╄→гoц情女王★ 提交于 2019-12-05 03:05:13
LBP的统一模式和非统一模式: (降维度) 统一模式: 中心点的一周,两个相邻像素点间求导为1,即由0到1跳变,或者由1向0跳变。 则跳变的次数为U的值,U等于0或者2时即为统一模式,否则为非统一模式。 统一模式共有58种: 非统一模式: 灰度不变性的圆形LBP算法: 从上面的计算我们可以看出,基本的LBP算法的计算仅包含其相邻的八个像素点,半径小,覆盖范围很小,这种方式的表达能力相对较小. 所以,Ojala等人提出一种改进的方法,将原来的3 3的方形九个像素点的计算模式,改成了任一点即半径的圆形模式,这样表达方式就不受限制了, 而且原始的正方形领域的像素点空间被圆形领域所代替。这种圆形领域的算法的半径R可以任意的改变,且半径R的像素点个数也不固定。 * 改进后的LBP算法通常用符号LBP(p,b)表达,R为圆形半径,P代表在该圆形范畴内的P个不同像素点。 下图为****几种常见的不同半径和不同像素点的LBP算法的示意图: 为了对LBP算子进行表示,用函数E表示为中心像素和相邻像素点的联合分布函数: 其中,gr表示图像中某个中心像素点的灰度值,g0~gk-1表示与中心像素点相邻的周围的 像素点,其中K=0,1,2~k-1。 每个E函数其中心像素点和相邻像素点所围成的圆的半径可以不同,其相邻像素点的数量也可以不同。****一个中心像素点周围的其它像素点gk的坐标可以表示成如式1所示:

linux下的EDA——DC使用

浪子不回头ぞ 提交于 2019-12-04 20:49:09
Design Compiler的作用是将RTL级代码转化为门级网表,为后续的时序分析和后仿做准备,其过程主要包括translation、optimization和mapping。DC的实现有两种方式,一种是命令行或脚本的方式,另外一种是图形界面方式。 DC综合需要库的支持,一般我们使用的库为.db的二进制文件。 库分为三个等级:target library、link library和symbol library。 target library 是指RTL级的HDL描述到门级时所需的标准单元综合库,它是由芯片制造商(Foundry)提供的,包含了物理信息的单元模型。 link library 可以是同target_library一样的单元库,也可以是已经底层已经被综合到门级的模块,在由下而上的综合过程中,上一层的设计调用底层已综合模块时,将从link_library中寻找并链接起来。 symbol library是显示电路时,用于标识器件、单元的库。芯片供应商提供的库通常有max,type,min三种类型,代表操作环境为最坏(worst),典型(type),最好(best)三种情况,当然也有其他形式的库如fast.db、slow.db等。 DC综合中还要进行静态时序分析,这一点在很多教程中都有讲解,就不在赘述。需要记得的就是在DC中需要进行时序约束,与在其他软件

OpenCV图像处理以及人脸识别

£可爱£侵袭症+ 提交于 2019-12-04 04:18:24
OpenCV基础 OpenCV是一个开源的计算机视觉库。提供了很多图像处理常用的工具 批注:本文所有图片数据都在我的 GitHub仓库 读取图片并显示 import numpy as np import cv2 as cv original = cv.imread('../machine_learning_date/forest.jpg') cv.imshow('Original', original) 显示图片某个颜色通道的图像 blue = np.zeros_like(original) blue[:, :, 0] = original[:, :, 0] # 0 - 蓝色通道 cv.imshow('Blue', blue) green = np.zeros_like(original) green[:, :, 1] = original[:, :, 1] # 1 - 绿色通道 cv.imshow('Green', green) red = np.zeros_like(original) red[:, :, 2] = original[:, :, 2] # 2 - 红色通道 cv.imshow('Red', red) 图像剪裁 h, w = original.shape[:2] # (397, 600) l, t = int(w / 4), int(h / 4) # 左上 r,