Gimp 抠图

GIMP:利用蒙板工具实现人像抠图

利用蒙板工具进行抠图简单介绍

方法步骤

1.打开图像

2.复制图层

3.选中图层

4.将图层改为单色

5.人像与背景分离

6.反相显示

7.人像部分描白

8.添加图层蒙板

9.粘贴白色人像轮廓

10.图层不可视

11.解决人像范围不正确

12.随意更换图像背景

利用蒙板工具进行抠图简单介绍

在GIMP中用蒙板工具抠图的方法,大体步骤为:复制图层、单色化、增加对比度、描画轮廓、复制轮廓;然后在原始图层上添加蒙板、粘贴轮廓;最后让生成轮廓的图层不可见。

方法步骤

1.打开图像

用GIMP打开所要处理的图像

2.复制图层

在图层上右击,选择复制图层

3.选中图层

单击带有“副本”的图层,即可选中刚复制的图层

4.将图层改为单色

选中刚复制的图层后,在菜单栏单击“颜色”,选择“分量”中的“单色混合器”

5.人像与背景分离

在打开的“单色混合器”对话框中,调整红、绿、蓝三色的值,使人像与背景尽量分离

6.反相显示

点击菜单栏的“颜色”,选择“反相”,将复制的图层反相显示

选择“反相”后,效果如下图

7.人像部分描白

在工具窗口中选择“画笔”工具,将人像轮廓以内的部分全部描成白色;

描完后可以通过“颜色”菜单选择“亮度-对比度”,进一步提高人像与背景的反差

8.添加图层蒙板

此时带有“副本”的图层处于选中状态,按Ctrl+c组合键进行复制白色人像轮廓;

然后点击原图层,右键选择“添加图层蒙版”

在弹出的对话框中,选择“白色(全不透明)”,单击添加按钮

9.粘贴白色人像轮廓

单击原图层上代表蒙板的白色小方块;

然后按Ctrl+v组合键,将已复制的白色人像轮廓粘贴过来;

这时会出现一个名为“浮动选区”的图层,右击该图层,选择“固定图层”

10.图层不可视

此时,图层又只有两个,单击带有“副本”图层前面的眼睛图标,让该图层变得不可视,即将人像从背景中分离出来了

11.解决人像范围不正确

如果此时发现人像部分的范围少了或者多了,则可以在带有图层蒙板的原始图层上右击,选择“显示图层蒙板”,重新使用画笔对蒙板进行描画(描黑是隐藏,描白是显现)

12.随意更换图像背景

完成人像背景分离后,便可以运用多种方法随意更换图像的背景了;

比如:新建一个图层置于最下层,使用“油漆桶”工具为该图层进行背景填充

python3连接oracle数据库

声明:pythoncx_Oracleinstantclient的版本应一致

我这里使用的版本是python3.6 64 ,cx_Oracle-5.3-11g.win-amd64-py3.6-2instantclient-basic-windows.x64-18.5.0.0.0dbru

1. 首先安装cx_Oracle

尽量不要直接使用pip install cx_Oracle,这样默认安装的是最新版本的cx_Oracle,可能会出现以下错误

1.1 cx_Oracle 报错:cx_Oracle.DatabaseError: DPI-1050: Oracle Client library must be at version 11.2

解决方法:从 https://pypi.python.org/pypi/cx_Oracle/5.3 下载低版本cx_Oracle版本 可以下载cx_Oracle-5.3-11g.win-amd64-py3.6-2.exe ,然后直接安装

1.2 如果在安装cx_Oracle-5.3-11g.win-amd64-py3.6-2.exe 时提示Python version 3.6 required, which was not found in the registry

可以通过执行这个文件来解决

register.py   链接: https://pan.baidu.com/s/1GcPK_I7ddSLZkM2sv7AHtA    提取码: qrwm 

2. 下载instantclient-basic-windows.x64-11.2.0.4.0.zip,解压并配置环境变量(放到path中)

下载地址:https://www.oracle.com/technetwork/cn/topics/winx64soft-101515-zhs.html

下载好后解压,并配置环境变量

3. instantclient下所有.dll文件到python\Lib\site-packages\下(我这里的路径为C:\Develop\Anaconda3\Lib\site-packages

4. 测试代码如下

import cx_Oracle conn=cx_Oracle.connect('username','password','172.16.5.29:1521/ORCL') cursor=conn.cursor()   print("连接成功!")   cursor.close() conn.commit() conn.close()

当你看到“连接成功”的提示语句时,那么就恭喜你成功了用python连上了oracle数据库

python 获取mysql查询结果的相应字段值

完成这个任务的整体流程,具体步骤如下:

步骤1        连接到MySQL数据库

步骤2        执行SQL查询语句

步骤3        获取查询结果

步骤4        提取相应字段的值

接下来,我将逐个步骤详细说明。

步骤1:连接到MySQL数据库

首先,我们需要安装Python的MySQL驱动程序。在命令行中运行以下命令安装驱动程序:

pip install mysql-connector-python  #mysql-connector已经过期

接下来,在Python脚本中引入MySQL驱动程序,并使用connect()函数连接到MySQL数据库。你需要提供数据库的相关信息,例如主机名、用户名、密码和数据库名称。

import mysql.connector

# 连接到MySQL数据库

cnx = mysql.connector.connect(

  host=”localhost”,

  user=”yourusername”,

  password=”yourpassword”,

  database=”yourdatabase”

)

步骤2:执行SQL查询语句

一旦成功连接到MySQL数据库,我们就可以执行SQL查询语句了。在这个示例中,我们执行一个简单的SELECT语句来检索一条数据:

# 执行SELECT语句

cursor = cnx.cursor()

sql = “SELECT * FROM yourtable”

cursor.execute(sql)

步骤3:获取查询结果

执行查询后,我们需要从结果中获取数据。MySQL驱动程序提供了fetchall()方法来获取所有查询结果。这个方法返回一个元组列表,每个元组代表一条查询结果。

# 获取查询结果

results = cursor.fetchall()

步骤4:提取相应字段的值

最后,我们需要从查询结果中提取相应字段的值。假设我们的查询结果包含三个字段:id、name和age。我们可以使用索引来提取这些字段的值。

# 提取相应字段的值

for result in results:

  id = result[0]

  name = result[1]

  age = result[2]

  print(“ID: “, id)

  print(“Name: “, name)

  print(“Age: “, age)

完成以上步骤后,你将能够成功获取MySQL查询结果的相应字段值。

Git 操作总结

一、在A机器上创建项目

1、eclipse创建项目

2、github创建仓库

3、eclipse share project,连接github

4、fetch remot from github,merge

5、push to github

二、B机器从git创建项目

7、import from git

8、选择存放路径,这里存放路径就是eclipse实际路径,没有保存到原workspace

9、fetch from remote,然后merge ,先fetch才可以后续push,如果无法push可能是没有fetch最新代码

10、修改编辑代码

11、push remote

三、A获取更新代码

12、fetch remot from github,merge

四、无法添加lib/jar

13、选择lib,ignore

14、编辑ignore文件,找到位置 添加!

五、回滚

15、选择项目,show history 选择提交,revert commit

16、revert commit不能解决的reset 强制回滚(慎用)

删除Git仓库所有提交历史记录,成为一个干净的新仓库

场景

把旧项目提交到Git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢?

操作

Checkout

git checkout –orphan latest_branch

Add all the files

git add -A

Commit the changes

git commit -am “commit message”

Delete the branch

git branch -D master

Rename the current branch to master

git branch -m master

Finally, force update your repository

git push -f origin master

强制pull远端覆盖本地文件

git fetch –all 

git reset –hard origin/master

Java 命令行编译

做一个手动编译打包执行java类例子 

首先进入zipCompressorByAnt 下面的操作都是在这个目录下进行的 

目录结构如下,src里面存放了我们的java类,lib里是我们要用到的包,我们的目地是首先把java类编译成class文件放在当前class目录下并包含包路径,然后把class文件打成jar放在lib下 

首先们要建一个class文件,javac编译的时候不会生成目录除了类中含有的包名目录外,然后用如下的命令就可以生成class文件,并放在我们指定的目录下 

Java代码  

  1. javac -encoding utf-8 -Djava.ext.dirs=./lib  -d class src/com/yan/compress/*.java  

对上面的命令进行说明 

-encoding utf-8 指定编码,如果不指定就以平台的编码为准 

-Djava.ext.dirs=./lib 指定编译的时候调用的类 

-d class 指定要生成到的目录 

src/com/yan/compress/*.java 这就是具体要编译的类了,星号表示这个目录下的所有的java文件,如果在这个目录下有多个java文件,那么装分别生成class文件到指定目录 

命令执行后就可以看到class目录中就有了我们编译过的类 

第二步生成jar文件 

Java代码  

  1. jar -cf lib/abc.jar class/com/yan/compress/ZipCompressorByAnt.class  

对命令进行一个说明 

-c 就是要生成jar包 

-f后面跟指定的包名lib/abc.jar 

class/com/yan/compress/ZipCompressorByAnt.class  类文件 

命令执行后就可以看到在lib目录下多了一个abc.jar包 

第三步就是执行这个类 

Java代码  

  1. java -Djava.ext.dirs=./lib    com.yan.compress.ZipCompressorByAnt  2013-08-04  

-Djava.ext.dirs=./lib 指定要用到的包 

com.yan.compress.ZipCompressorByAnt 带包名的类 

2013-08-04 参数,如果需要参数的话就可以带参数 

到这里一个手工编译类的例子就完成了,下面就对命令的一些细节进行一些扩展 

如果在编译的时候想一下子编译多个类,并且这些类不在一个文件夹里怎么办 

假设除了下面的要编译的类个还有在a/*.java b/*.java  c/*.java 一些文件 

其实也简单就看命令 

Java代码  

  1. javac -encoding utf-8 -Djava.ext.dirs=./lib  -d class src/com/yan/compress/*.java a/*.java b/*.java c/*.java  

指定编译版本 和编码格式

javac -Djava.ext.dirs=../lib  -encoding UTF-8 -source 1.2 -target 1.2  com/htxx/fzbb/bbgl/*.java

相关文章

java 命令行打包成可执行jar