- 【Python_Opencv图像处理框架】信用卡数字识别项目
畅游星辰大海
#Python_Opencvopencvpython图像处理
写在前面本篇文章是opencv学习的第六篇文章,前面主要讲解了对图像的一些基本操作,这篇文章我们就开始大展身手,将前面所学的基础操作活学活用。既能复习基础操作,又能学到一些新的知识。作为初学者,我尽己所能,但仍会存在疏漏的地方,希望各位看官不吝指正写在中间(1)简单介绍我们通过opencv提供的一些函数,来实现基础操作,看完本篇文章,你就能轻松地将这信用卡上的数字识别出来该技术首先通过图像处理技术
- python_opencv点击鼠标获取图像中坐标值
是木子啊
问题解决python
python_opencv使用鼠标获取图片的某一点坐标@[TOC]https://blog.csdn.net/jiangkui007/article/details/82866755
- 回到目标本身
GreyCrane
当我们做一件事的时候,容易沉入到事情里面去,然后就被事情牵引,忘记了做事情本身的目标。比如说我本来是想在raspberry上安装tensorflowlite,测试mobilenetv2+ssdlite的性能,然后发现要先把先安装opencv,于是开始折腾opencv,在raspberry安装opencv很麻烦,于是我陷进去了,搞了两三个礼拜。而事实上我只是需要python_opencv的库就可以。
- 使用python_opencv比较图像差异/使用python_opencv找出两张图像的差异范围
陈 洪 伟
python#OpenCVpythonopencv图像对比图像差异
目录1创建conda环境2安装python库2.1报错ModuleNotFoundError:Nomodulenamed'numpy'3image_diff.py
- 【Python_Opencv图像处理框架】图像基本操作+90bb5729-b33a-4e82-a0d9-faa3e5cbf621
畅游星辰大海
Pythonpythonopencv图像处理
写在前面很幸运能选择Python语言进行学习,这是有关Opencv的图像处理的第一篇文章,讲解了有关图像处理的一些基础操作,作为初学者,我尽己所能,但仍会存在疏漏的地方,希望各位看官不吝指正❤️写在中间1.计算机眼中的图像计算机眼中的图像由一个个像素组成,每个像素点的值在0-255之间,代表像素点的亮度(0为最暗,255为最亮)。灰度图(黑白图)为单通道。彩色图为三通道。彩色图像包括三个颜色通道—
- python 归一化_python-OpenCV之normalize(归一化 )函数详解
来了先森
python归一化
归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。接下来主要讲述python_opencv中的normalize()函数,其原型为:defnormalize(src,dst,alp
- 基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)
Svan.
pythonopencv人工智能图像处理
基于python_opencv人脸录入、识别系统(应用dlib机器学习库)近几年应用opencv机器学习方法识别人脸的技术成为了热潮,本人根据当今的识别技术与方法,历时四个多月开发出一套基于dlib机器学习库的识别项目。希望大家能一起交流学习。项目英文名:FacerecognitionfromcamerawithDlib文章目录基于python_opencv人脸录入、识别系统(应用dlib机器学习
- 基于Python_opencv的车牌识别系统
Svan.
pythonopencv计算机视觉图像处理github
基于python_opencv的车牌识别系统一、说明根据现有的车牌识别系统,本人对代码进行了优化,原有功能:1、对图片中的车牌号进行识别,并对车牌所属地可视化2、将识别出的车牌号、车牌所属地等信息导出Excel表格3、根据QtDesinger设计GUI界面,将程序系统化添加功能:调用摄像头实时识别捕捉到的车牌信息,并可视化链接:最新代码传送门下图分别是调用摄像头和直接识别图像的画面:二、具体实现流
- opencv椭圆检测python_OpenCV实现的椭圆检测的源代码
weixin_39637975
1.//readbmp.cpp:Definestheentrypointfortheconsoleapplication.2.//3.4.#include"stdafx.h"5.#include6.7.#include"ipl.h"8.#include"cv.h"9.//#include"_cv.h"10.//#include"vlgrfmts.h"11.12.//----------------
- python_opencv例程遇到empty() in function 'cv::CascadeClassifier::detectMultiScale'解决办法
_PEA
主要问题:cv2.CascadeClassifier中haarcascade_frontalface_default.xml的位置路径一定是自己的具体的安装路径,路径错误会报如下错误:解决办法:将haarcascade_frontalface_default.xml此文件正确的路径复制到cv2.CascadeClassifier("正确的路径")
- python_openCV例程遇到:'cv::CascadeClassifier::detectMultiScale'
qq_42621977
python人脸识别python
E:\Python37\python.exeE:/Python37/untitled/FaceDemo.pyTraceback(mostrecentcalllast):File“E:/Python37/untitled/FaceDemo.py”,line24,infaces=face.detectMultiScale(gray,1.1,3)cv2.error:OpenCV(4.1.0)C:\pro
- python_openCV例程遇到error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale的简单解决方法...
art1st2012
python人工智能
需要把haar分类器训练的结果xml数据放在名为haarcascades的文件夹下进行调用。将:face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_defalt.xml')eye_cascade=cv2.CascadeClassifier('haarcascade_eye.xml')改为:face_cascade=cv2.Casc
- C++、Python_OpenCV图像通道转换
不可_收_圾
OpenCVopencv
相机采集到的图像输出格式是BGR,用OpenCV可以转成RGBC++:Matimage(Frame_t.iHeight,Frame_t.iWidth,CV_8UC3,(uchar*)Buffer_t);//从相机采集到的BGR24帧数据cv::cvtColor(image,image,cv::COLOR_BGR2RGB);//通道顺序转换为RGBPython:importcv2src=cv2.im
- opencvpython 段力辉是哪本书_Python_OpenCV傅里叶变换
weixin_39674190
opencvpython段力辉是哪本书
(一)、什么是傅里叶变换我们生活在时间的世界中,早上700起来吃早饭,800去挤地铁,900开始上班。。。以时间为参照就是时域分析。但是在频域中—切都是静止的。傅里叶变换的作用:高频:变化剧烈的灰度分量,例如边界。低频:变化缓慢的灰度分量,例如一片大海。滤波:低通滤波器:只保留低频,会使得图像模糊。高通滤波器:只保留高频,会使得图像细节增强。——opencv中主要就是cv2.dft()和cv2.i
- opencv for python_OpenCV for Python 学习笔记 一
weixin_39774808
opencvforpython
本人的学习笔记主要记录的是学习opencv-python-tutorials这本书中的笔记今天晚上简单学习OpenCVforPython如何绘图,主要用了这几个函数(这几个函数可在:http://docs.opencv.org/modules/core/doc/drawing_functions.html找到):cv2.line(img,pt1,pt2,color[,thickness[,line
- Python_opencv库实现调用摄像头拍照并保存到本地【电脑随时拍】
YouthUpward
python人工智能pythonopencv
原文链接:https://blog.csdn.net/qq_42069296/article/details/121401327导入opencv-python库,复制代码即可运行importcv2defpicture_shoot(image_name='img.png',image_path=r'E:/')->None:'''调用摄像头拍照并保存图片到本地:paramimage_name:图片名字
- 关于opencv读取图片,无法正常显示
include_void_
opencv计算机视觉python
本人小白,最近在学习OpenCV,我虽然是按着步骤一步一步的配置好了opencv,编写好程序后,编译没错,但是运行的时候就打不开图片。代码如下:importcv2importnumpyasnpimg=cv2.imread('D:\Code_VScode\Python_opencv\test.jpg')cv2.imshow('test',img)cv2.waitKey(0)cv2.destroyAl
- 使用清华镜像离线安装python_opencv
芝麻开蒙
安装环境pythonanacondaopencv
前言最近在训练模型过程中,对于importcv2出现的ModuleNotFoundError:Nomodulenamed‘cv2’,很直观就能清楚缺少了opencv的库,本以为很容易就能在指定的conda环境下安装完成,结果碰了一鼻子灰…找到的安装命令包括:condainstall-chttps://conda.anaconda.org/menpoopencv3condainstallopencv
- PYTHON_opencv 历程总览 - updating
CHUNLIN GO
DataManipulationPythonModuleToolboxMachineVisionPythonopencv
OpenCV是一个在影像与图像处理上非常实用且方便的一个工具,其庞大程度已经可以算是一个平台,支援了各式各样的编程语言,当然Python也是包含其中的“之一”,这个包集成了许多当下流行的图像处理算法,成为了他们呼叫函数的其中一个部分,不用我们用户单独的去设置函数细节,是个非常暖心的包。使用了这个模块做图像处理一段时间了,总是只有看到最后的结果与呼叫的函数对应功能,渐渐的这些处理过程被埋在了open
- Python_OpenCV调用摄像头完成人脸识别
独憩
opencv-python学习opencvpython计算机视觉
核心是找到haarcascade_frontalface_default.xml这个文件,一般来说下载了OpenCV库都有,直接去自己电脑找就行了importcv2#调用模型库文件face_cascade=cv2.CascadeClassifier(r'XXXXXX\haarcascade_frontalface_default.xml')#打开内置摄像头cap=cv2.VideoCapture(
- python_opencv边界填充
谜之_摄影爱好者
python-opencvopencvpython计算机视觉
学习目标:提示:python_opencv边界填充,深度学习经常用,还有其他玩的领域例如:一秒钟掌握学习内容:提示:python_opencv边界填充BORDER_REPLICATE:复制法,就是复制最边缘像素BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例如:dcba|(图像像素)abcd|dcbaBORDER_REFLECT_101:反射法,就是以最边缘像素为轴,对
- python_opencv实现掩膜
时年、
python
importsslimporturllib.requestimportcv2importnumpyasnp#获得图片defgetPic(name,url):#name---图片地址#url---图片名字(自定义)#解决SSL验证ssl._create_default_https_context=ssl._create_unverified_context#请求图片resp=urllib.reque
- opencv录制视频 python_OpenCV Python 录制视频
weixin_39634579
opencv录制视频python
学到实用OpenCV调用笔记本电脑的摄像头,并录制视频保存到本地硬盘的时候,出现了一点故障,那就是获取到的文件总是为0KB。经过一番查找,终于找到了解决办法。调用摄像头调用摄像头作为本实验的基础是必不可少的,因为我们很有可能在初始化的这一步出错,而导致整个视频录制的失败。引入库支持importcv2初始化初始化的时候,参数可以是整数,也可以是外部的视频文件的名称。这里需要强调的是整数类型。通常来说
- 图像矫正--python_OpenCV实现透视变换
王吉吉丫
图像处理opencvpython
透视变换(PerspectiveTransform)和仿射变换(AffineTransform)在图像还原、局部变化处理方面有重要意义。通常,在2D平面中,仿射变换的应用比较多;在3D平面中,透视变换占领地位较高。两种变换原理相似,结果也相似,可以针对不同场合选择适合方法。两者的计算方法就是矩阵运算,即,坐标向量和变换矩阵的乘积。仿射变换是基于图像的3个固定顶点进行变换,如下图:透视变换:利用透视
- Python_OpenCV通过摄像头识别二维码和条形码
不可_收_圾
工业摄像机Pythonpythonopencv计算机视觉图像识别
参考:python3+opencv+pyzbar摄像头检测二维码并获取二维码内容/版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/zx66zx/article/details/82785334安装pyzbar库pipinstallpyzbar用的摄像头OpenCV打不开,只能用厂家的SDK,改了改
- Python_OpenCV(滤镜_深度传感器_特征匹配_视觉跟踪识别_分类)及其C++ArUco标记姿态计算
亚图跨际
Python机器学习opencvpython分类
滤镜创建黑白铅笔素描为了获得相机框架的铅笔素描(即黑白图),我们将使用两种图像融合技术,即躲避和刻录。这些术语是指在传统摄影的打印过程中使用的技术;在这里,摄影师可以控制暗室照片某些区域的曝光时间,以使其变暗或变暗。躲避使图像变亮,而刻录使图像变暗。不应该进行更改的区域用掩膜保护。如今,现代图像编辑程序(例如Photoshop和Gimp)提供了在数字图像中模拟这些效果的方法。例如,掩模仍然被用来模
- python 傅里叶滤波_Python_OpenCV傅里叶变换
盲眼刺客
python傅里叶滤波
(一)、什么是傅里叶变换我们生活在时间的世界中,早上700起来吃早饭,800去挤地铁,900开始上班。。。以时间为参照就是时域分析。但是在频域中—切都是静止的。傅里叶变换的作用:高频:变化剧烈的灰度分量,例如边界。低频:变化缓慢的灰度分量,例如一片大海。滤波:低通滤波器:只保留低频,会使得图像模糊。高通滤波器:只保留高频,会使得图像细节增强。——opencv中主要就是cv2.dft()和cv2.i
- 使用Opencv(python)实现泛洪填充
小小老书童
python_opencv中的泛洪填充方法cv.FLOODFILL_FIXED_RANGE————对图像进行泛洪填充cv.FLOODFILL_MASK_ONLY————对mask进行填充泛洪填充的一些简单介绍常见的泛洪填充算法有四邻域像素填充,八邻域填充,基于扫描线的像素填充方法;同时又可以分为递归和非递归方法。基于Python_opencv的代码实现importcv2ascvimportnump
- Python_OpenCV对摄像头图像进行边缘检测
不可_收_圾
Python工业摄像机python计算机视觉opencv边缘检测
主要就这个Canny函数,这个什么Canny算法据说是1986年发布的,有点牛批mat=cv2.Canny(mat,MinVal,MaxVal,5,L2gradient=True)#minVal:最小梯度,小于阈值的都不作为边缘#maxVal:最大梯度,大于阈值的都作为边缘#5:5*5大小的高斯模糊,用来消除噪点#L2gradient:求图像梯度,从而进行去除非边界上的点(非极大值抑制)mat是从
- python_基于OpenCV库Adaboost的人脸识别
Kedi
以前用Matlab写神经网络的面部眼镜识别算法,研究算法逻辑,采集大量训练数据,迭代,计算各感知器的系数。。。相当之麻烦~而现在运用调用pythonOpenCV库Adaboost算法,无需知道算法逻辑,无需进行模型训练,人脸识别变得相当之简单了。需要用到的库是opencv(opensourcecomputervision),下载安装方式请参照python_OpenCV安装首先讲讲需要用到的新函数:
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http