質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

7428閲覧

openCVでimreadして得た配列の構成を変えたい

noisy_max

総合スコア46

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2016/11/09 04:40

python

1import cv2 2 3img = cv2.imread('hoge.jpg') 4print(img.shape)

以上のように128*128のカラー画像を読み込んだ際、
(128,128,3)の3次元配列になります。

これを(3,128,128)の形にしたいのですが、どのようにすればよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

opencvはpythonならc++のcv::Mat形式は直接使わずnumpy.ndarray形式になって返ってくるので、
numpy.transpose()で変換できます。
また、transpose()はndarrayのメソッドとしても使えます。

python

1import cv2 2import numpy as np 3 4img = cv2.imread("tmp.jpg") 5print(img.shape) 6img_t = np.transpose(img, (2,0,1)) 7#img_t = img.transpose(2,0,1) # メソッドとしても使えます。 8print(img_t.shape)
(256, 512, 3) (3, 256, 512)

投稿2017/07/17 06:42

uyuutosa

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

目的を推測してみた。おそらくの128×128配列にBGR形式で格納されているとの認識と予測。そして各B,G,Rの色の128×128の配列にしたいのでしょう。
Mat型の定義を見られるとすぐ理解できると思います。
cv::Matの基本処理

投稿2016/11/09 05:09

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

noisy_max

2016/11/09 05:14

その通りです、ご推察ありがとうございます! 勉強してみます、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問