2016年10月16日日曜日
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時間つぶしたよ
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);
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にはいってるんだって へえ
LIBS +=パス/libopencv_imgcodecs310.dll.a
を追加するといいよ
3.0からはimreadはimgcodecsにはいってるんだって へえ
2016年9月28日水曜日
登録:
投稿 (Atom)