[问题] 如何缩小图片尺寸以移除图片空白的部份

楼主: 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