ラベル OpenCV の投稿を表示しています。 すべての投稿を表示
ラベル OpenCV の投稿を表示しています。 すべての投稿を表示

2016年10月14日金曜日

2016年10月9日日曜日

MatからQpixmapへの変換

#include "mainwindow.h"

QPixmap MainWindow::MtoP(cv::Mat amat){

    cv::Mat mat;
    cvtColor(amat, mat,CV_BGR2RGB);//これがなかったら色が青になっちゃったよ

    return QPixmap::fromImage(QImage((unsigned char*) mat.data, mat.cols, mat.rows, static_cast<int>(mat.step), QImage::Format_RGB888));

}


参考URL::http://stackoverflow.com/questions/17127762/cvmat-to-qimage-and-back

Opencv3にはseamlessCloneっていうのがあるよ

画像と画像を自然に合体させるやつで、すごいよ
https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp/
でも自然すぎて何も変わってないと勘違いしてずっとおかしなとこないかと探してたよ
10時間つぶしたよ

2016年10月1日土曜日

OpenCV inpaintのためにマスク画像作る場合に初期化するときは cv::Mat::ones だと失敗しちゃう という俺の失敗

題名のとおりマスク画像作ってinpaintで遊ぼうと思ってマスク画像を作った

cv::Mat Mask = cv::Mat::ones(cvimg.size().height,cvimg.size().width,CV_8U);

これじゃ1で初期化されるのでだめ、zerosを使おう0000000000000000000000
cv::Mat Mask = cv::Mat::zeros(cvimg.size().height,cvimg.size().width,CV_8U);

これでオッケー

でも、元画像は1じゃないといいけないよ
cv::inapint(1 , 0 , 0, flag);

また半日以上つぶれた

OpenCV C++ inpaint

なぜか手間取ったのでメモ


    cv::Mat testimg = cv::imread("パス/org.jpg", -1);
    cv::Mat testmask = cv::imread("パス/msk.jpg",0);
    cv::Mat test;

    cv::inpaint(testimg,testmask,test,3 ,cv::INPAINT_TELEA );

    cv::imshow("test",test);

OpenCV cv::inpaint include Lib

#include <opencv2/photo/photo.hpp>

LIBS += C:/opencv-3.1.0-mingw/lib/libopencv_photo310.dll.a

2016年9月29日木曜日

Qt + opencv3 でcv::imread がうまくいかない時は

proファイルに
LIBS +=パス/libopencv_imgcodecs310.dll.a
を追加するといいよ
3.0からはimreadはimgcodecsにはいってるんだって へえ

2016年9月28日水曜日

Qt creator MinGW + opencv の設定

この動画を見ればわかるよ 動画はLinuxだけどWindowsでも同じだよ

やっとできた・・・