gray

记账本开发记录——第二天(2020.1.19)

非 Y 不嫁゛ 提交于 2020-01-20 00:27:46
今天在github上查找了安卓做一个记账本的相关项目。发现做一个安卓记账本实在超出了我的能力范围。于是决定把安卓先放一放,拾起我上学期的java web。 初步计划,写一个完整的记账本后提交到服务器上,通过web进行访问。也正好借此机会训练一下自己的java web能力。 首先,既然这个web要放服务器,前端界面就不能太难看。在上学期的学习中,重点掌握了后端的增删改查,前端的各种花里胡哨的东西都还没搞过。而且html css div的学习也并不系统,很多内容都是不清不楚。在这样的情况下,我决定先重新学习前端三大宝。今天看了一天的视频,跟着视频内容实现了用table实现一个商城首页: 这个界面有很长很长的页面,下面附上代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>商城首页</title> 6 </head> 7 <body> 8 <!-- 1.创建一个八行一列的表格--> 9 <table border="1px" width="1300px" align="center" cellspacing="0px"> 10 <!-- 2.logo部分 --> 11 <tr> 12 <td> 13 <!-- 嵌套一个一行三列的表格 --> 14 <table border="1px"

Opencv之图像阈值

岁酱吖の 提交于 2020-01-17 01:46:45
图像阈值 ret, dst = cv2.threshold(src, thresh, maxval, type) src: 输入图,只能输入单通道图像,通常来说为灰度图 dst: 输出图 thresh: 阈值 maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值 type:二值化操作的类型,包含以下5种类型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV cv2.THRESH_BINARY 超过阈值部分取maxval(最大值),否则取0 cv2.THRESH_BINARY_INV THRESH_BINARY的反转 cv2.THRESH_TRUNC 大于阈值部分设为阈值,否则不变 cv2.THRESH_TOZERO 大于阈值部分不改变,否则设为0 cv2.THRESH_TOZERO_INV THRESH_TOZERO的反转 # 先将图片转化为灰度图 img = cv2 . imread ( 'cat.jpg' ) img_gray = cv2 . cvtColor ( img , cv2 . COLOR_BGR2GRAY ) ret , thresh1 = cv2 . threshold ( img

Opencv_C++(3)

你离开我真会死。 提交于 2020-01-15 07:17:37
#include <opencv2\opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char** argv) { Mat src,gray_src ; src = imread("C:\\Users\\89899\\Desktop\\OHR.TengbocheMonastery_ZH-CN7555740661_1920x1080.jpg"); namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); cvtColor(src, gray_src, CV_BGR2GRAY);//将RGB转换为单通道图像,即转化为灰度图像 int hight = gray_src.rows; int width = gray_src.cols; namedWindow("output", CV_WINDOW_AUTOSIZE); imshow("output", gray_src); imwrite("C:\\Users\\89899\\Desktop\\output.jpg", gray_src); //单通道反差, for(int row =0;row<hight;row++) for (int

python 人脸检测

为君一笑 提交于 2020-01-14 17:32:50
一.开发环境搭建 我们使用Python自带的IDLE进行编程,我使用的电脑是Windows系统,代码在win7 64位,win10 64位这两种电脑上验证过。Python版本为3.xx,需要使用的库有opencv,numpy,pillow。这三个库分别使用pip按照即可,指令分别为; 1)opencv;pip install opencv-python 2)numpy;pip install numpy 3)pillow;pip install pillow 所有的文件夹 face_pic 存档获取的照片 转为灰度图片 本文的路径采用自动获取绝对路径 在Python的安装目录,按照这个路径依次打开文件夹Lib→site-packages→cv2→data,复制文件“haarcascade_frontalface_default.xml”,“haarcascade_frontalcatface.xml”到face_identity文件夹,这两个是分类器,用于进行人脸检测。 注意 如果提示“module' object has no attribute 'face'” 解决方法: 可以输入 pip install opencv-contrib-python解决,如果提示需要commission,可以在后面加上 --user,即 pip install opencv-contrib

使用python实现canny算法

╄→гoц情女王★ 提交于 2020-01-13 07:08:45
1. Canny算法概述 Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。更为重要的是 Canny 创立了边缘检测计算理论(Computational theory of edge detection)解释这项技术如何工作。 通常情况下边缘检测的目的是在保留原有图像属性的情况下,显著减少图像的数据规模。有多种算法可以进行边缘检测,虽然Canny算法年代久远,但可以说它是边缘检测的一种标准算法,而且仍在研究中广泛使用。 2.最优边缘准则 Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是: (1)最优检测:算法能够尽可能多地标识出图像中的实际边缘,漏检真实边缘的概率和误检非边缘的概率都尽可能小; (2)最优定位准则:检测到的边缘点的位置距离实际边缘点的位置最近,或者是由于噪声影响引起检测出的边缘偏离物体的真实边缘的程度最小; (3)检测点与边缘点一一对应:算子检测的边缘点与实际边缘点应该是一一对应。 为了满足这些要求 Canny 使用了变分法(calculus of variations),这是一种寻找优化特定功能的函数的方法。最优检测使用四个指数函数项表示,但是它非常近似于高斯函数的一阶导数。 2. Canny算法实现步骤 第一步:灰度化 第二步:高斯滤波 任何边缘检测算法都不可能在未经处理的原始数据上很好地工作

3直方图与二值化,图像梯度

…衆ロ難τιáo~ 提交于 2020-01-12 15:39:26
1直方图 #直方图--增强对比度 def equalHist_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) dst = cv.equalizeHist(gray) cv.imshow("equalHist_demo", dst) def clahe_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) clahe = cv.createCLAHE(clipLimit=5.0, tileGridSize=(8, 8)) dst = clahe.apply(gray) cv.imshow("clahe_demo", dst) #直方图投影--视频跟踪 2二值化 #二值化 import cv2 as cv import numpy as np def threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_BINARY|cv.THRESH_OTSU)#OTSU计算阈值 print("threshold value %s"%ret) cv.imshow("binary",

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

匆匆过客 提交于 2020-01-11 18:54:00
微信公众号: 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

C# WPF简况(2/3)

会有一股神秘感。 提交于 2020-01-11 17:40:09
微信公众号: Dotnet9 ,网站: Dotnet9 ,问题或建议: 请网站留言 , 如果对您有所帮助: 欢迎赞赏 。 C# WPF简况(2/3) 阅读导航 本文背景 代码实现 本文参考 1.本文背景 承接上文( C# WPF联系人列表(1/3) ),添加好友简况。 本文效果如下: 2.代码实现 使用 .Net CORE 3.1 创建名为 “Chat” 的WPF项目,添加 MaterialDesignThemes(3.0.1)、MaterialDesignColors(1.2.2)两个Nuget库,文中部分图片可在文末视频配套源码中下载。 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.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries>

读取、修改、保存图像

跟風遠走 提交于 2020-01-10 03:32:31
注意: 我们假设读者已经了解图像读取函数 imread ,并能使用 imshow 将图像显示到窗口。 目标 如下,将学习如何使用: 图像读取 imread 图像颜色空间的转换 cvtColor 图像保存至硬盘 (using imwrite) 代码 代码如下: # include <cv.h> # include <highgui.h> using namespace cv ; int main ( int argc , char * * argv ) { if ( argc != 2 ) { printf ( "useage: %s <imagefile>\n " , argv [ 0 ] ) ; return - 1 ; } char * imageName = argv [ 1 ] ; Mat image ; image = imread ( imageName , CV_LOAD_IMAGE_COLOR ) ; if ( ! image . data ) { printf ( " No image data \n " ) ; return - 1 ; } Mat gray_image ; cvtColor ( image , gray_image , CV_BGR2GRAY ) ; imwrite ( "../../images/Gray_Image.jpg" , gray

opencv 交叉冲印,怀旧风格,光照效果,漏光滤镜的c++实现

让人想犯罪 __ 提交于 2020-01-07 23:48:01
交叉冲印滤镜又叫做正片负冲滤镜,关于它的原理我一直没找到,希望有大佬给我甩个链接。 我用的测试图像在这里 我实现的交叉冲印是使用上图这样的点运算来实现的,下面是我的代码 void punchFilter(Mat src) { int width = src.rows; int height = src.cols; int gray, value; int rMap[256], gMap[256], bMap[256]; for (int i = 0; i < 256; i++){ value = i < 128 ? i : 256 - i; gray = (int)pow(value, 3) / 16384; // value的3次方再除以16384 rMap[i] = i < 128 ? gray : 256 - gray; gray = (int)pow(value, 2) / 128; // value的2次方再除以128 gMap[i] = i < 128 ? gray : 256 - gray; bMap[i] = i / 2 + 0x25;//0x25 = 37 } for (int j = 0; j < width - 1; j++) { uchar* data = src.ptr<uchar>(j); for (int i = 0; i < height - 1;