82746


[Python, OpenCVで画像にモザイク処理（全面、一部、顔など）](https://note.nkmk.me/python-opencv-
mosaic/) のページに  
以下のような記述があります。

>
[code]

>     imgs = [Image.fromarray(mosaic(src, 1 / i)) for i in range(1, 25)]
>  
[/code]

これをベタで書くとき、上記の左辺 `imgs =` の部分はどう書くのでしょうか？

たぶん、こんな感じになるのではないかと思うのですが、

[code]

    for i in range(1, 25):
     Image.fromarray(mosaic(src, 1 / i))
    
[/code]

ここから先がよくわからないです。

[code]

    for i in range(1, 25):
     imgs += Image.fromarray(mosaic(src, 1 / i))
    
[/code]

ではないみたいです。

[code]

    UnboundLocalError: local variable 'imgs' referenced before assignment
    
[/code]

というエラーが出ます。よろしくお願いします。


CC BY-SA 4.0
2021-09-29T05:50:21.453
82745
2021-09-29T06:10:18.497
2021-09-29T06:10:18.497
3060
43160
question
python opencv
内包表記をベタに開いて書く


同じサイト作者の記事がこちらにあります。  
[Pythonリスト内包表記の使い方](https://note.nkmk.me/python-list-comprehension/)

> 等価なfor文とともに例を示す。
[code]

>     squares = [i**2 for i in range(5)]
>     print(squares)
>     # [0, 1, 4, 9, 16]
>  
[/code]

>
> * * *
[code]

>     squares = []
>     for i in range(5):
>         squares.append(i**2)
>  
>     print(squares)
>     # [0, 1, 4, 9, 16]
>  
[/code]

その内容を応用すれば以下のようになるでしょう。

[code]

    imgs = []
    for i in range(1, 25):
        imgs.append(Image.fromarray(mosaic(src, 1 / i)))
    
[/code]

他に参考になる記事  
[pythonの内包表記を少し詳しく](https://qiita.com/y__sama/items/a2c458de97c4aa5a98e7)


CC BY-SA 4.0
2021-09-29T06:03:47.473
82746
2021-09-29T06:03:47.473
26370
82745
answer