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

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

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

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

Q&A

解決済

1回答

2006閲覧

OpenCVでCV_8UC3を使用すると画像サイズが半分になってしまう

退会済みユーザー

退会済みユーザー

総合スコア0

OpenCV

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

0グッド

0クリップ

投稿2020/02/23 14:59

発生している問題

OpenCVでCV_8UC3を使用したときに画像の高さと幅が半分になってしまいます。
元の高さ、幅で処理を行いたいのですがどのようにすればよいでしょうか。
宜しくお願いします。

元の画像サイズは高さ1353px 幅633pxです。

画像の高さ、幅を出力するコード

C++

1#include <iostream> 2#include <opencv2/opencv.hpp> 3 4//CV_8UC3で読み込み 5cv::Mat image = cv::imread("C:/Users/image.jpg",CV_8UC3); 6 7//そのままで読み込み 8cv::Mat image2 = cv::imread("C:/Users/image2.jpg"); 9 10int main() 11{ 12 std::cout << "cols"<< image.cols << ",rows" << image.rows << std::endl; 13 std::cout << "cols"<< image2.cols << ",rows" << image2.rows << std::endl; 14 15 cv::waitKey(10000); 16 return 0; 17}

出力

C++

1cols677,rows317 2cols1353,rows633 3

環境

Visual Studio 2017
OpenCV 4.11
Windows10

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

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

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

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

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

guest

回答1

0

ベストアンサー

cv::Mat image = cv::imread("C:/Users/image.jpg",CV_8UC3);

CV_8UC3 はそこに指定するための値ではありません.
使う関数の引数に何を書けば良いのかに関しては,まずはリファレンスで確認するべきです.確認してください.
確認した結果として,デフォルト引数を使う…すなわち
cv::Mat image = cv::imread("C:/Users/image.jpg");で問題ないようなら,そのように書けばよいでしょう.

高さと幅が半分に

という現象に関しては,CV_8UC3の値が,たまたまそれ系のフラグ値と被るためでしょう.
(前記したようにリファレンスを見てみれば,画像サイズを小さくするフラグが存在することもわかります)

投稿2020/02/24 01:24

編集2020/02/24 01:27
fana

総合スコア12187

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問