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.pswp.cn/news/385837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385837.shtml
英文地址,請注明出處:http://en.pswp.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…