'#파이썬 #기초' 카테고리의 다른 글
#우분투16.04에서 파이선3.5 삭제 (8) | 2018.12.14 |
---|---|
#파이썬 실행파일 만들기 (0) | 2018.09.12 |
#파이썬 #파일 읽고 쓰기 (0) | 2018.09.07 |
#파이썬 기본 #end='' 의미 (0) | 2018.09.07 |
#파이썬3.7 우분투16.04에 설치하기 (0) | 2018.09.06 |
#우분투16.04에서 파이선3.5 삭제 (8) | 2018.12.14 |
---|---|
#파이썬 실행파일 만들기 (0) | 2018.09.12 |
#파이썬 #파일 읽고 쓰기 (0) | 2018.09.07 |
#파이썬 기본 #end='' 의미 (0) | 2018.09.07 |
#파이썬3.7 우분투16.04에 설치하기 (0) | 2018.09.06 |
[참고] Learn python3 the hard way - Zed A.Shaw
#파이썬 실행파일 만들기 (0) | 2018.09.12 |
---|---|
#더 탄탄하게 배우는 파이썬3 예제 소스 (0) | 2018.09.08 |
#파이썬 기본 #end='' 의미 (0) | 2018.09.07 |
#파이썬3.7 우분투16.04에 설치하기 (0) | 2018.09.06 |
#파이썬2.7 환경 변수 설정 #우분투 #import 에러 (0) | 2018.08.23 |
#print 뒤에 end='' 의미
print("I'm UBSman", end='') # '\n'을 입력하지 않아도 print에게 줄 바꿈을 하지 말고 다음 주로 가게 함.
ex.py
print("I'm UBSman", end='')
age = input()
print(f"I'm {age}old man.")
$python3 ex.py #실행
[참고]
줄바꿈 방지
print 문 실행 시 항상 문자열 마지막에 \n
문자가 출력되어 줄바꿈이 일어나게 된다. 이렇게 마지막 문자인 \n
을 생략할 수 있는 방법이 있는데 이것또한 파이썬 3 버전과 파이썬 2.7 버전이 서로 다르다.
파이썬 3 버전의 예
print ("No new line", end=" ");print ("ok?")
파이썬 3 버전의 경우 줄바꿈 문자를 제거하기 위해서 위와 같이 끝 문자를 지정할 수 있는 end 파라미터를 설정하면 된다. 지정하지 않으면 디폴트로 \n
문자가 세팅된다.
파이썬 2.7 버전의 예
print "No new line",;print "ok?"
파이썬 2.7 버전의 경우 줄바꿈 문자를 제거하기 위해서 문자열의 끝에 콤마(,
)를 덧불이면 된다.
#파이썬 실행파일 만들기 (0) | 2018.09.12 |
---|---|
#더 탄탄하게 배우는 파이썬3 예제 소스 (0) | 2018.09.08 |
#파이썬 #파일 읽고 쓰기 (0) | 2018.09.07 |
#파이썬3.7 우분투16.04에 설치하기 (0) | 2018.09.06 |
#파이썬2.7 환경 변수 설정 #우분투 #import 에러 (0) | 2018.08.23 |
[참고]
[파이썬2 버전확인 (OS : 우분투 16.04)]
$python -V
$python --version
[파이썬3 버전확인 (OS : 우분투 16.04)]
$python3 -V
$python3 --version
[python 설치현황 보기]
$ls -alh /usr/bin/python*
[우분투 설치 절차]
1. https://www.python.org/downloads/release/python-370/ 에서 파이썬3.7 다운로드. (Window, Mac OS X 는 있는데 리눅스는 없음. 그냥 Source release 다운)
2. 압축풀기
3. $./configure // make파일 만들어줌
(If you want a release build with all stable optimizations active(PGO, etc), please run ./configure --enable-optimizations)
3-1. $./configure --enable-optimizations // 두 번째 시도는 최적화로 시작했음
4. $make // 설치시작
5. $make test // 테스트 시작 (3-1로 시작하면 테스트 자동실행. 10분 정도 소요됨)
6. $sudo make install // 또 설치! 결과는 오류 메시지 뜸(3-1로 시작해도 install 오류 메시지 뜸)
7. $./python // 다운로드 폴더에서 파이썬 실행하면 3.7로 접속됨
8. $reboot // 재실행하고 터미널에서 python3 입력하면 3.7로 접속됨
[파이선 실행하기]
$python3.7 코드파일.py
($python3 -V 이후 3.7 경로로 변경 되어 있다면 $python3 코드파일.py로 입력하면 됨)
[의견]
1. windows는 설치도 쉽고 예제가 잘 실행 됨
2. 우분투는 설치는 실패했으나 파이썬3.7 실행은 가능함.
3. 테스트 코드
#ex5.py
my_age = 34
print(f"My age is {my_age}.")
#이 코드가 내재된 우분투 환경의 파이썬2.7과 파이썬3.5에서 오류가 나서 이 블로그를 쓰게 됨.
#learn python3 the hard way의 저자 Zed A.Shaw 님은 파이썬 3.6에서 실행하라고 하심.
$python3.7 ex5.py // 실행
#파이썬 실행파일 만들기 (0) | 2018.09.12 |
---|---|
#더 탄탄하게 배우는 파이썬3 예제 소스 (0) | 2018.09.08 |
#파이썬 #파일 읽고 쓰기 (0) | 2018.09.07 |
#파이썬 기본 #end='' 의미 (0) | 2018.09.07 |
#파이썬2.7 환경 변수 설정 #우분투 #import 에러 (0) | 2018.08.23 |
[gcc 버전확인]
$gcc --version
[gcc 설치]
$sudo apt-get install gcc
[g++ 버전확인]
$g++ --version
[g++ 설치]
$sudo apt-get install g++
[.deb 파일 설치하기]
1. (다운로드 폴더로 이동 후 터미널 열기)
$sudo dpkg -i 파일명.dev
2. 파일 더블 클릭하면 우분투소프트웨어로 들어가짐. 설치 클릭
#nano 편집기 Tab크기 4로 줄이기 (0) | 2018.12.17 |
---|---|
#C 자료구조 입문 학습하기 (0) | 2018.10.26 |
#C/C++ 학습사이트 , #c#학습사이트 (0) | 2018.08.28 |
#OpenCV Tx1 보드에 빌드하기 #NVIDIA Jetson TX1 (0) | 2018.08.16 |
printf 기본적인 의미! (0) | 2016.12.15 |
https://gist.github.com/KhaledSMQ/081a6fffca92d50ab8b634d1b5b795ae[참고]
http://webnautes.tistory.com/1030
[설치버전 확인하기]
$pkg-config --modversion opencv
[기존 설치된 패키지 업그레이드]
$sudo apt-get update
$sudo apt-get upgrade
[OpenCV 컴파일 전 패키지 설치]
$sudo apt-get install build-essential cmake
$sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
$sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
$sudo apt-get install libv4l-dev v4l-utils
$sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$sudo apt-get install libqt4-dev
$sudo apt-get install mesa-utils libgl1-mesa-dri libqt4-opengl-dev
$sudo apt-get install libatlas-base-dev gfortran libeigen3-dev
$sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy
[OpenCV 버전 다운로드]
https://opencv.org/releases.html
[build 폴더 만들고 cmake 실행]
$
$cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=OFF \
-D WITH_IPP=OFF \
-D WITH_1394=OFF \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_DOCS=OFF \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH= ../../opencv_contrib-3.4.0/modules \
-D WITH_V4L=ON \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
../
(결과) 실패
1. openCV 2.4.13을 설치하려고 진행 했으나 제대로 설치가 안 됨. 참고 블로그는 openCV 3.3 (ubuntu 16.04)를 설치하는 과정을 담음.
[참고]
https://gist.github.com/KhaledSMQ/081a6fffca92d50ab8b634d1b5b795ae
[패키지 설치]
$sudo apt-get update
$sudo apt-get install -y build-essential
$sudo apt-get install -y cmake
$sudo apt-get install -y libgtk2.0-dev
$sudo apt-get install -y pkg-config
$sudo apt-get install -y python-numpy python-dev
$sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev
$sudo apt-get install -y libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev
[OpenCV 버전 다운로드 -> build 폴더 만들기 -> cmake 실행]
$cmake -G "Unix Makefiles"
-D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D WITH_V4L=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D BUILD_FAT_JAVA_LIB=ON \
-D INSTALL_TO_MANGLED_PATHS=ON \
-D INSTALL_CREATE_DISTRIB=ON \
-D INSTALL_TESTS=ON \
-D ENABLE_FAST_MATH=ON \
-D WITH_IMAGEIO=ON \
-D BUILD_SHARED_LIBS=OFF \
-D WITH_GSTREAMER=ON \
.. \
$make all -j2 #2 = 코어 수
(설치 진행..)
(결과) 성공!
1. 설치 100% 가다니 감개 무량. 그런데 파이썬2에서 import cv2가 안 됨. 왜 그런지? ㅠㅠ
2. openCV 2.4.13을 설치 했는데 2.4.9.1이 뜨는 이유는? 에라 모르겠다~
#qt 학습 사이트 (0) | 2018.09.13 |
---|---|
#Qt Creator #QCamera 예제 (0) | 2018.08.28 |
#Qt #Qt 개발자 커뮤니티 (0) | 2018.08.28 |
#Qt버전 확인 #qt 설치 #qmake (0) | 2018.08.24 |
#Qt #QVision환경설정 (0) | 2018.08.24 |
[참고]
https://www.slideshare.net/carpedm20/pycon-korea-2016
https://ko-kr.facebook.com/iamprogrammer.io/posts/d41d8cd9/1185640541457468/
김태훈님 GitHub : https://github.com/carpedm20
[Computer Vision]
[Natural Language Processing]
[Reinforcement Learning]
[Algorithm Learning]
#딥러닝, 머신러닝 학습 사이트 (0) | 2018.11.12 |
---|
[참고]
Tutorial Qt Creator - QCamera(WebCam en C++)
https://www.youtube.com/watch?v=9oQZPqi47Y8
$ sudo apt-get update
$ sudo apt-get install qtmultimedia5-dev // 우분투 16.04에 설치하기(QCamera 모듈 불러오려면 설치 필요)
(Qt5에서 실행)
1. Welcome - Project - New Project - Application - Qt Widgets Application
2. Name : CameraTest - 작업폴더 지정 - Next
3. Kit Selection(데스크탑 or 임베디드 or 기타 ) 선택하기(동시선택 가능) - Next
4. Details - Class Information - Base class: - QWidget 선택 - Next - Finish
5. code 작성
"CameraTest.pro"
QT += core gui multimedia multimediawidgets // 멀티미디어 모듈을 모듈화
(...생략...) // 자동생성
QMAKE_CXXFLAGS += -std=gnu++14 // 표준 2014 추가
"widget.h"
(...생략...) //자동생성
class QCamera;
class QCameraViewfinder;
class QCameraImageCaputre;
class QVBoxLayout;
class Widget : public Qwidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr); // 0을 nullptr로 변경
~Widget();
private:
Ui::Widget *ui;
QCamera *mCamera;
QCameraViewfinder *mCameraViewfinder;
QCameraImageCapture *mCameraImageCaputre;
QVBoxLayout *mLayout;
};
#endif
"widget.cpp"
#include "widget.h"
#include "ui_widget.h"
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QVBoxLayout>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
mCamera = new QCamera(this);
mCameraViewfinder = new QCameraViewfinder(this);
mCameraImageCaputre = new QCameraImageCapture(mCamera, this);
mLayout = new QVBoxLayout;
mLayout ->addItem(mCameraViewfinder);
}
Widget::~Widget()
{
delete ui;
}
"widget.ui" (Design 영역. 코딩이 아닌 Drag&Drop으로 UI 만들기)
전 Object Name : optionPushButton 으로 함
"widget.h"
(...생략...) //자동생성
class QCamera;
class QCameraViewfinder;
class QCameraImageCaputre;
class QVBoxLayout;
class QMenu;
class QAction;
class Widget : public Qwidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr); // 0을 nullptr로 변경
~Widget();
private:
Ui::Widget *ui;
QCamera *mCamera;
QCameraViewfinder *mCameraViewfinder;
QCameraImageCapture *mCameraImageCaputre;
QVBoxLayout *mLayout;
QMenu *mOpcionesMenu;
QAction *mEncenderAction;
QAction *mApagarAction;
QAction *mCapturarAction;
};
#endif
"widget.cpp"
#include "widget.h"
#include "ui_widget.h"
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QVBoxLayout>
#include <QMenu>
#include <QAction>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
mCamera = new QCamera(this);
mCameraViewfinder = new QCameraViewfinder(this);
mCameraImageCaputre = new QCameraImageCapture(mCamera, this);
mLayout = new QVBoxLayout;
mOpcionesMenu = new QMenu("Option", this);
mEncenderAction = new QAction("Encender", this);
mApagarAction = new QAction("Apagar", this);
mCapturarAction = new QAction("Capturar", this);
mOptionMenu->addAction({mEncenderAction, mApagarAction, mCapturarAction});
ui->optionPushButton->setMenu(mOptionMenu);
mCamera->setViewfinder(mCameraViewfinder);
mLayout->addWidget(mCameraViewfinder); //Item을 Widget으로 수정
mLayout->setMargin(0);
ui->scrollArea->setLayout(mLayout);
connect(mEncenderAction, &QAction::triggered, [&](){
mCamera->start();
});
connect(mAagarAction, &QAction::triggered, [&](){
mCamera->stop();
});
connect(mCapturarAction, &QAction::triggered, [&](){
});
}
Widget::~Widget()
{
delete ui;
}
"main.cpp"
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setStyple("fusion")
Widget w;
w.show();
return a.exec();
}
"widget.cpp"
#include "widget.h"
#include "ui_widget.h"
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QVBoxLayout>
#include <QMenu>
#include <QAction>
#include <QFileDialog>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
mCamera = new QCamera(this);
mCameraViewfinder = new QCameraViewfinder(this);
mCameraImageCaputre = new QCameraImageCapture(mCamera, this);
mLayout = new QVBoxLayout;
mOpcionesMenu = new QMenu("Option", this);
mEncenderAction = new QAction("Encender", this);
mApagarAction = new QAction("Apagar", this);
mCapturarAction = new QAction("Capturar", this);
mOptionMenu->addAction({mEncenderAction, mApagarAction, mCapturarAction});
ui->optionPushButton->setMenu(mOptionMenu);
mCamera->setViewfinder(mCameraViewfinder);
mLayout->addWidget(mCameraViewfinder); //Item을 Widget으로 수정
mLayout->setMargin(0);
ui->scrollArea->setLayout(mLayout);
connect(mEncenderAction, &QAction::triggered, [&](){
mCamera->start();
});
connect(mAagarAction, &QAction::triggered, [&](){
mCamera->stop();
});
connect(mCapturarAction, &QAction::triggered, [&](){
auto filename = QFileDialog::getSaveFileName(this, "Capturar", "/", "Imgae(*.jpg;*.jpeg)");
if (filename.isEmpty()){
return;
}
mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToFile);
QImageEncoderSettings imageEncorderSettings;
imageEncorderSettings.setCodec("image/jpeg");
imageEncorderSettings.setResolution(1288, 964);
mCameraImageCapture->setEncodingSettings(imageEncorderSettings);
mCamera->setCaptureMode(QCamera::CaptureStillImage);
mCamera->start();
mCamera->searchAndLock();
mCameraImageCapture->capture(filename);
mCamera->unlock();
});
}
Widget::~Widget()
{
delete ui;
}
오류 발생! 동영상 보고 코드 다시 확인해보기!
#qt 학습 사이트 (0) | 2018.09.13 |
---|---|
#opencv 2.4.13 설치하기(c/c++) (0) | 2018.09.05 |
#Qt #Qt 개발자 커뮤니티 (0) | 2018.08.28 |
#Qt버전 확인 #qt 설치 #qmake (0) | 2018.08.24 |
#Qt #QVision환경설정 (0) | 2018.08.24 |