php智能裁剪黑边,图片裁剪去除黑边

前言

从浏览器保存的图片有透明度,但是python打开其透明通道是黑色的,因此我利用python的OpenCV模块去除了其上下左右的黑边。

效果展示

01922e334a8a

计算机中效果

01922e334a8a

python打开效果

01922e334a8a

python裁剪后效果

代码

import cv2

def change_size(read_file):

image = cv2.imread(read_file, 1) # 读取图片 image_name应该是变量

img = cv2.medianBlur(image, 5) # 中值滤波,去除黑色边际中可能含有的噪声干扰

b = cv2.threshold(img, 15, 255, cv2.THRESH_BINARY) # 调整裁剪效果

binary_image = b[1] # 二值图--具有三通道

binary_image = cv2.cvtColor(binary_image, cv2.COLOR_BGR2GRAY)

x = binary_image.shape[0]

print("高度x=", x)

y = binary_image.shape[1]

print("宽度y=", y)

edges_x = []

edges_y = []

for i in range(x):

for j in range(y):

if binary_image[i][j] == 255:

edges_x.append(i)

edges_y.append(j)

left = min(edges_x) # 左边界

right = max(edges_x) # 右边界

width = right - left # 宽度

bottom = min(edges_y) # 底部

top = max(edges_y) # 顶部

height = top - bottom # 高度

pre1_picture = image[left:left + width, bottom:bottom + height] # 图片截取

return pre1_picture # 返回图片数据

if __name__ == '__main__':

file_names = 'template.png'

template = change_size(file_names)

cv2.imshow('template', template)

cv2.waitKey(0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java架构师教你如何突破瓶颈,持续更新中

1、上下文切换 上下文定义 cpu发生进程或者线程切换时,所依赖的数据集合,比如一个函数有外部变量,函数运行时,必须获取外部变量,这些变量值的集合就是上下文。 引发问题 对于CPU密集型任务,多线程处理会…

matlab dwt 多层分解,利用matlab对图片进行多层小波分解 会的加QQ511607771 加过作图之后积分加倍送...

利用matlab对图片进行多层小波分解 会的加QQ511607771 加过作图之后积分加倍送mip版 关注:96 答案:2 悬赏:0解决时间 2021-01-23 13:02已解决2021-01-23 04:23(Haar小波、Daubechies小波、Coiflets小波和Symlets小波) 三层分解下的去噪图可以直接发信息15836900853 立马上线…

Java校招面试经验汇总,最终入职阿里

一面 自我介绍项目中的监控:那个监控指标常见的有哪些?微服务涉及到的技术以及需要注意的问题有哪些?注册中心你了解了哪些?consul 的可靠性你了解吗?consul 的机制你有没有具体深入过?有没有和其他的注册…

matlab确定位置,Hurlin 的PSTR模型包,怎样确定位置参数个数

http://www.runmycode.org/companion/view/2564我用的是这个包1.怎样确定位置参数个数?2. 门限变量也是解释变量时,结果中(结果如下)的warning 是什么意思?3. 这个包中是否能够把门限变量也作为解释变量?我跑出的结果是这样的&…

Java校招面试经验汇总,看完直接跪服

美团技术一面20分钟 晚7点,因为想到下周一才面试,我刚准备出去打个羽毛球,北京的电话就来了。面试官各种抱歉,说开会拖延了。 1、自我介绍 说了很多遍了,很流畅捡重点介绍完。 2、问我数据结构算法好不好 挺好的&…

nginx alias php 404,Nginx配置静态服务器以及404问题解决,root和alias的区别

最近在使用Nginx配置一个图片静态服务器来通过http请求访问图片,在配置的时候,发现遇到访问有404的问题,结果发现是在配置路径的时候,和路径属性是root还是alias的有关。nginx配置文件server {listen 88;server_name localhost;#c…

Java框架体系架构的知识,轻松拿下offer

算法 ⼏道常⻅的字符串算法题总结最⻓公共前缀回⽂串两数相加翻转链表链表中倒数第k个节点删除链表的倒数第N个节点合并两个排序的链表剑指offer部分编程题跳台阶问题变态跳台阶问题⼆维数组查找替换空格题⽬描述:数值的整数次⽅调整数组顺序使奇数位于偶数前⾯链表…

php函数网,php函数

时间相关1.time(),可获得当前时间的时间戳.2.strtotime(),可将一个文本类型的datetime转化成时间戳.3.格式输出:比如输出时间为01/31/2011date(m/d/Y,时间戳).再如: date ( Y-m-d H:i:s , 时间戳 ); 2011-01-31 04:20:59.输入输出相关echo sprintf("%.2f",0.24236); …

java开发学生管理系统,看这篇足矣了!

20道常见MySQL数据库面试题解析 事务四大特性(ACID)原子性、一致性、隔离性、持久性? 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别? MySQL常见的三种存储引擎&#…

oracle频,Oracle动作频频 Java或浴火重生

【51CTO观察】自从今年(2010)的1月27日Oracle正式宣布完成并购Sun以来,Java的前途和命运一直是众多Java开发者的所关心的话题。4月9日,被称为Java之父的James Gosling又在个人博客上宣布离开Oracle,这一事件更为Java的前景增加了一层迷雾。但…

java开发实战经典第二版百度网盘,灵魂拷问

一面(一个小时左右) 算法:写冒泡排序,问如何优化,简单讲了快排和堆排序的原理数据库:解释左连接数据库第一第二第三范式,数据库死锁linux:怎么查看内存;怎么查看进程&am…

php用户之间的数据,什么是位于用户与操作系统之间的一层数据管理软件

什么是位于用户与操作系统之间的一层数据管理软件?DBMS是位于用户与操作系统之间的一层数据管理软件。数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统…

java开发实战经典答案百度云,含面试题+答案

1、上下文切换 上下文定义 cpu发生进程或者线程切换时,所依赖的数据集合,比如一个函数有外部变量,函数运行时,必须获取外部变量,这些变量值的集合就是上下文。 引发问题 对于CPU密集型任务,多线程处理会…

redius和oracle怎么配置,求个 交换机radius 详细配置案例

配置采用RADIUS协议进行认证和计费示例组网需求如图1所示,用户通过SwitchA访问网络,用户同处于huawei域。SwitchB作为目的网络接入服务器。用户首先需要穿越SwitchA和SwitchB所在的网络,然后通过服务器的远端认证才能通过SwitchB访问目的网络…

java开发小程序好吗,看完必懂

1关于MySQL,面试官会问哪些问题? 第一个:MySQ性能优化最佳实践21个(有具体的解释)你知道哪些? 为查询缓存优化你的查询 EXPLAIN你的SELECT查询 当只要一行数据时使用LIMIT 1 为搜索字段建索引 在Join表…

linux拉取指定时间内,Linux 日期和时间操作详解

Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,当Linux启动时,硬件时钟会去读取系统时钟的设置,然后…

java开发属于后端吗,值得一读!

1. 垃圾回收机制 Stop-the-World:   JVM由于要执行GC而停止了应用程序的执行称之为Stop-the-World,该情形会在任何一种GC算法中发生。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态直到GC任务完成。事实…

linux 创建精灵进程,linux 进程通信之 守护进程

守护进程(Daemon)Daemon(精灵)进程,是linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的时间。一般采用以d结尾的名字。从下面的进程信息可以看出,守护进程都是【?】。colord 1160 0.0 0.2 …

java开发岗位招聘,吊打面试官

一.java基础面试知识点 java中和equals和hashCode的区别 int、char、long各占多少字节数 int与integer的区别 探探对java多态的理解 String、StringBuffer、StringBuilder区别 什么是内部类?内部类的作用 抽象类和接口区别 抽象类的意义 抽象类与接口的应用…

linux 调用默认程序打开文件,Excel VBA如何使用默认应用程序打开文件

我无法评论现有答案(分数不足),因此我在回答以添加信息。从Access 2010开始,我遇到了以下语法的无提示故障:Dim URL As StringURL "http://foo.com/"CreateObject("Shell.Application").Open URL如果用URL括号括起来&am…