[問題] 如何縮小圖片尺寸以移除圖片空白的部份

作者: art1 (人,原來不是人)   2020-11-22 14:52:10
一開始以為 cv2.findContours 可以達成我的需求,實際用過後才知道不是
目前已經可以做到把圖片有圖案的部份跟背景完全分開,達到類似套用遮罩的效果
但想要更進一步縮小這個遮罩的尺寸,以便讓遮罩相當於一個最小的矩型框框住有圖案
的部份
想做這個是因為 skimage.draw 的 random_shapes 函式所產生的隨機形狀數量如果過少
,會出現很大的空白區域,因此希望用一個最小的矩型框把這些隨機圖案全部框起來
直覺上用迴圈沿著長跟寬方向找有非零值出現的最大與最小索引值就能達成我的需求
,但想知道有沒有比較優雅的解決方案,例如使用 numpy 的內建函式就能達成呢?
作者: martin7887 (martin)   2020-11-22 15:46:00
+1我也想知道,之前也是用內文提到的方式,
作者: hsnuyi (羊咩咩~)   2020-11-22 18:00:00
用一個function解決=優雅? 這定義還真悲劇
作者: art1 (人,原來不是人)   2020-11-22 19:09:00
numpy 的內建函式不是運算比較快嗎?而且聽說最好不要用迴圈取用 numpy 陣列的值
作者: OrzOGC (洞八達人.拖哨天王)   2020-11-22 19:40:00
沒現成函式可用的話就硬幹吧
作者: Hsins (翔)   2020-11-22 22:33:00
numpy.array 取值應該沒什麼影響, 但 list.append() 會比array.append() 要快...所以你要硬幹的話, 最好可以先取出存 list 之後,全部搞定再存成 arrayhttps://i.imgur.com/Y8XzMtc.png

Links booklink

Contact Us: admin [ a t ] ucptt.com