iT邦幫忙

0

如何自動化分割圖中的小圖

  • 分享至 

  • xImage

如題,小弟目前想寫code將圖片自動分割為小區塊,下面例子:

  1. 原圖(比如一個.png檔)
    原圖
  2. 分割概念圖(可以看到我把想分割的區塊用紅色框出來,所以程式跑完後這張圖應該要有8個"子圖")
    分割概念圖

這是我想做的事情,但是不知道該從何下手。
不知道否有高手能夠指點下該怎麼做?
目前是希望能夠用python(最好有相關套件可以用)或C++完成(當然其他適合的程式語言也無妨),或是有其他應用程式級的軟體可以達到上述要求也可以。

謝謝各位~~

EDIT

十分感謝下面各位大大的回答,不過可能是我表達不夠清楚導致大家誤解我的意思了QQ
我想達成的效果是將一張"截圖"(已經是.png這類的圖檔,而非還在網頁的形式)分割成若干個小圖(而想要分割的部分如圖2紅色框出來的部分所示)。
簡單來講,input應是一張圖(比如一張.jpg),而output是若干張小圖(n張.jpg)
不過仍然很感激回答的大大,也讓我學到一些其他的東西~

ccutmis iT邦高手 2 級 ‧ 2021-02-22 21:09:39 檢舉
土砲君跟我說 :「 Google Chrome的F12開發者工具就能辦到...
youtube是網頁,你用有提供DOM Parser的語言都能簡單取得這些框內的圖片跟文字,如C#裡的HTML Agility Package、Python Selenium + Beautiful Soap都可以做的很漂亮
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
japhenchen
iT邦超人 1 級 ‧ 2021-02-23 08:25:50

想抓Youtube的影片、截圖,你有更簡單的工具,名字叫做Youtube-dl,Windows跟linux都有
你可以用python、c#、c++.....去呼叫外部youtube-dl程式,參數

youtube-dl "紅衣小男孩" --default-search ytsearch output.mkv

抓縮圖就加個 --get-thumbnail

非常感激您的回答。由於我拙劣的表達技巧導致誤導您的回答方向,在這裡和您說聲抱歉,我詳細想問的部分已更新在問題中EDIT的部分了,再麻煩您過目。仍然很感謝您的回答,我又學到了一些其他東西。

簡單回答,python切圖方法

rom PIL import Image
im = Image.open("brad.jpg")
l = 200
t = 200
r = 300
b = 300
cropped = im.crop((l, t, r, b))
cropped.save("new.jpg")
1
ccutmis
iT邦高手 2 級 ‧ 2021-02-23 10:17:46

土法君來了~如果樓主想要做的是得到Youtube首頁區塊可以用特定顏色框出來的話,有個最簡單的作法,那就是開啟Google Chrome,進到Youtube首頁,然後按F12顯示開發者面板,切到Console分頁,貼入下列代碼按Enter

document.querySelectorAll(".ytd-rich-item-renderer").forEach(item => item.style="border:solid 1px #FA0;");

執行結果如下圖:

然後把它截圖,就是樓主說的東西了。 但是上述這部份是建立在"手動"為基礎上面,
如果你要的是"全自動化",而且要的東西不是一張圖上面畫紅框,而是紅框部份要切成一張張小圖,那問題就要複雜多了。

舉個我知道能辦到的相關步驟:

  1. 用 python+selenium 開啟 Chrome 進到 youtube首頁,參考前述作法將各區塊畫好框線後,用selenium的截圖功能取得一張大圖(裡面有N個顏色框)並存為"screenshot.png"
  2. 用OPENCV將圖片裡的顏色框切成小圖 順利的話就是樓主說的東西了

以上只是其中一種可行方式,如果不先用Chrome標註出顏色框的話,可能就要找適合的影像識別模組來把需要的區域標出來,例如:

https://stackoverflow.com/questions/48928592/how-to-get-the-co-ordinates-of-the-text-recogonized-from-image-using-ocr-in-pyth

這個不見得適用樓主的case,我只是舉個例,相關資源請多利用Google關鍵字搜尋...

微笑 iT邦研究生 5 級 ‧ 2021-02-23 14:13:09 檢舉

我覺得他想要的效果類似這個

對應的youtubeAPI

ccutmis iT邦高手 2 級 ‧ 2021-02-23 15:09:09 檢舉

我只會土法練鋼...

非常感激您的回答。由於我拙劣的表達技巧導致誤導您的回答方向,在這裡和您說聲抱歉,我詳細想問的部分已更新在問題中EDIT的部分了,再麻煩您過目。仍然很感謝您的回答,我又學到了一些其他東西。

2
微笑
iT邦研究生 5 級 ‧ 2021-02-23 14:33:23

如果只是要擷取圖片的話網路上有不少工具

依據網頁結構來截圖的話可以試試看這個

如果是打算把資料擷取到其他網站上的話可以試試看這個

非常感激您的回答。由於我拙劣的表達技巧導致誤導您的回答方向,在這裡和您說聲抱歉,我詳細想問的部分已更新在問題中EDIT的部分了,再麻煩您過目。仍然很感謝您的回答,我又學到了一些其他東西。

我要發表回答

立即登入回答