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

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

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

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

2921閲覧

zeroMQでpythonからc++に画像を送りたい。

ag_ns_gt

総合スコア15

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/11/08 15:09

c++

1int main(int argc, char *argv[]) 2{ 3 int cnt = 0; 4 int rows, cols, type; 5 cv::Mat hanaimg; 6 void *data; 7 8 // Open ZMQ Connection 9 zmq::context_t context(1); 10 zmq::socket_t socket(context, ZMQ_REP); 11 socket.bind("tcp://*:5556"); 12 13 while (1) { 14 zmq::message_t rcv_msg; 15 socket.recv(&rcv_msg, 0); 16 17 // Receive Data from ZMQ 18 switch (cnt) { 19 case 0: 20 rows = *(int*)rcv_msg.data(); 21 break; 22 case 1: 23 cols = *(int*)rcv_msg.data(); 24 break; 25 case 2: 26 type = *(int*)rcv_msg.data(); 27 break; 28 case 3: 29 data = (void*)rcv_msg.data(); 30 printf("rows=%d, cols=%d type=%d\n", rows, cols, type); 31 32 if (type == 2) { 33 hanaimg = cv::Mat(rows, cols, CV_8UC1, data); 34 } 35 else { 36 hanaimg = cv::Mat(rows, cols, CV_8UC3, data); 37 } 38 cv::imwrite("kari.jpg", hanaimg); 39 break; 40 } 41 42 if (!rcv_msg.more()) { 43 // No massage any more 44 break; 45 } 46 47 cnt++; 48 } 49return 0; 50 51}

python

1import cv2 2import os 3import zmq 4import sys 5import numpy as np 6file1='output.jpg' 7conn_str="tcp://localhost:5556" 8 9args = sys.argv 10 11ctx = zmq.Context() 12sock = ctx.socket(zmq.REQ) 13sock.connect(conn_str) 14 15img = cv2.imread(file1, cv2.IMREAD_COLOR); 16 17 18 19height, width = img.shape[:2] 20ndim = img.ndim 21 22data = [ np.array( [height] ), np.array( [width] ), np.array( [ndim] ), img.data ] 23sock.send_multipart(data) 24

pythonから画像をvisual studio2017c++に送りたいと考えていますが,上記のプログラムを実行するとビルドもできず、
ACCESS_MASKがあいまいです。というエラーがたくさん出てしまいます。
どうすれば画像を送れるようになるか教えていただきたいです。
zeroMQ自体初めて扱うので全く分かりません。
初心者なのでかみ砕いて教えていただけるとありがたいです。
よろしくお願いします。
visual studio2017 15.8.1です。

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

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

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

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

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

y_waiwai

2018/11/08 15:41

エラーが出るなら、エラーメッセージを提示してください。
kazto

2018/11/08 22:18

c++のソースコードは上記で全てでしょうか?上記ソースコードからはACCESS_MASKと言う文言が見当たりません。include文なども省略されているので、そのあたりも省略せず記載をお願いします。
can110

2018/11/10 15:48

OpenCVのみ利用したC++コードはビルドできるかを追記ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問