OpenCV를 안드로이드에서 사용하려면 SDK를 이용해야 합니다. OpenCVC++로 되어있어서 설치하는 과정이 복잡했는데 요즘에는 쉽게 사용이 가능합니다. SDKOpenCV에서 제공하고 있는데 안드로이드 버전에 따라 맞는 버전을 선택 해야 하고 저는 최신 버전(현재 OpenCV-4.7.0)으로 테스트 해보려고 하였으나 계속되는 에러로 실패를 하고 다른 버전으로 몇 번을 시도한 후에 적합한 버전을 찾게 되었습니다.

 

안드로이드 버전을 많이 타는것 같습니다.  참고로 제 핸드폰의 Android version 9 입니다. 

OpenCV-4.4.0 버전이 제 핸드폰에는 적합하고 gradle 버전도 맞춰야 하고 dependencies 설정도 적절하게 손을 봐야 합니다.

 

 

아래에 설명되는 글들중 이미지에 버전이 4.7.0로 된 부분이 있다면 4.4.0임을 참고하시기 바랍니다.

처음 캡쳐하고 에러나서 여러번 테스트 하면서 다시 캡쳐를 하지 않았네요.

저는 OpenCV 5개의 버전을 테스트 해서 제가 가지고 있는 핸드폰에 적합한 환경을 설정 했습니다.  핸드폰 버전에 따라 조금씩은 환경 설정에 시간을 소비해야 하지 않을까 생각 됩니다.

 

 

1. SDK 다운로드

 

 

OpenCV SDK를 다운로드 받기 위해 홈페이지에 접속합니다.

 

https://opencv.org/

 

 

 

첫화면의 Library에 마우스를 올려 놓으면 서브메뉴가 나타나고 Releases를 선택합니다.

 

Library > Releases

 

최신 버전순으로 SDK 리스트와 지원하는 운영체제를 볼 수 있습니다.

자신의 핸드폰에 적합하다고 생각되는 버전을 선택합니다.

 

 

 

저는 OpenCV-4.4.0 버전에서 운영체제는 Android를 선택했습니다.

 

opencv-4.4.0-android-sdk.zip  211MB

 

다운로드 받은 파일을 적당한 폴더에서 압축을 풀어줍니다.

 

 

압축을 풀어 준 폴더에 들어가 보면 samples sdk 두개의 폴더가 보입니다.

샘플은 말 그대로 예제 이고 SDK 폴더를 사용합니다.

 

 

2. Android Project 생성

 

안드로이드 스튜디오에 SDK를 적용하여 개발 환경을 구축하기 위해 프로젝트를 하나 생성합니다.

 

 

Empty Activity를 선택하고 [Next] 버튼을 클릭 합니다.

 

 

프로젝트 명을 기입하고 기타 다른 선택도 자신의 환경에 맞게 해 줍니다.

저는 java로 개발하는것을 설명 드립니다.

 

 

3. SDK module 추가

 

이제 여기서 부터가 opencv SDK를 적용하는 부분입니다.

OpenCV를 모듈로 추가합니다.

 

 

메뉴에서 모듈을 import 하기위해

File > New > import Module

순서대로 선택을 하면 module 추가 팝업 창이 나타납니다.

 

 

여기에서 폴더모양 아이콘을 이용하여 다운받은 파일의 압축을 풀어 준 OpenCV sdk 폴더를 선택해줍니다.

 

 

[OK] 버튼을 클릭하면 앞으로 사용할 모듈에 대한 엘리어스 명칭을 입력합니다.

처음에는 폴더명대로 sdk로 되어있는데 이런 이름으로는 구분이 안되겠죠.

 

 

뭐라고 하든 상관은 없지만 혼동을 줄 명칭은 피해서 입력합니다. 대부분 OpenCV 또는 OpenCV4로 입력을 하리라 생각됩니다.

저는 OpenCV로 입력을

:OpenCV

이렇게 했습니다.

 

모듈이 추가되면 프로젝트에 OpenCV가 추가됩니다.

 

 

 

4. OpenCV gradle 수정

 

모듈이 추가되면서 OpenCV 설정gradle도 아래 이름으로 생성됩니다.

build.gradle(Module: OpencvTest.OpenCV)

 

 

 

java로 개발하기 때문에 코틀린 플러그인 오류가 발생 합니다.  sdk에 따라 안나오는 경우도 있습니다.

오류가 발생한 apply plugin: ‘kotlin-android’ 라인을 삭제합니다.

 

 

 

targetSdkVersion 26도 오류가 발생 하는데 29이상 지원이 된다고 하니 29로 변경 합니다.

. 저의 경우는 이렇게 해야 하는거고 개발환경이 다르신 분들은 32또는 33으로 하셔도 됩니다.

나중에 build할때 계속 변경하면서 찾으면 됩니다.

 

apply plugin: 'com.android.library'

def
openCVersionName = "4.4.0"
def
openCVersionCode = ((4 * 100 + 4) * 100 + 0) * 10 + 0

println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile

android {
   
compileSdkVersion
29

   
defaultConfig {
       
minSdkVersion
21
       
targetSdkVersion 29

 

수정이 완료 되었습니다.

이제 app gradle 수정을 합니다.

 

build.gradle (Module: OpencvTest.app)

 

android {
   
compileSdkVersion
29
   
buildToolsVersion "29.0.0"

   
defaultConfig {
       
applicationId
"copycoding.tistory.opencvtest"
       
minSdkVersion 26
       
targetSdkVersion 29
       
versionCode 1
        
versionName "1.0"

 
dependencies {

   
implementation
'androidx.appcompat:appcompat:1.3.0'
   
implementation 'com.google.android.material:material:1.4.0'

 

여기도 버전과 dependencies 를 적당하게 수정해 줍니다.

아니면 나중에 build 할때 오류가 발생하면 수정합니다.

수정을 했으면 우측 상단의 [Try Again] 또는 [Sync Now]를 클릭해줍니다.

 

 

5. OpenCVapp에 적용

 

이제 추가된 OpenCV Module app에 적용하는 방법입니다.

 

 

 

안드로이드 스튜디오 상단메뉴에서

File > Project Structure

를 선택 합니다.

 

 

 

현재 제가 사용하고 있는 Android gradle plugin version  Gradle version입니다.

좌측 메뉴에서 Dependencies를 선택해줍니다.

 

 

좀 설명이 복잡할 수 있는데

Dependencies 다음 단계에 있는 Modules에서 맨 아래의 app을 선택합니다.

그리고 다음 단계 Declared Dependencies에서 + 기호를 선택 하면 나타나는 3번째 Module Dependency를 클릭 합니다.

 

Dependencies > app > [+] > Module Dependency

 

그러면 SDK module을 추가할때 이름지은 항목이 나타나는데 OpenCV 또는 OpenCV4등으로 기입한 이름입니다.

 

 

 

저는 OpenCV.로 설정을 하였는데 선택하고 [OK] 버튼을 클릭 합니다.

선택이 완료되면 다시 이전 화면으로 돌아갑니다.

 

 

여기에서 선택을 적용하기 위해 [Apply] 버튼을 먼저 클릭하고 잠시 반영작업이 완료된 후 [OK] 버튼을 클릭합니다. 적용이 완료되면 Apply 버튼이 비활성화 됩니다.

[Apply] > [OK]

 

이제 모든 설정이 완료 되었고 코딩만 진행하면 됩니다.

 

 

6. OpenCV SDK 적용 확인

 

OpenCV sdk가 추가되었는지 간단하게 테스트 해봅니다.

 

MainActivity에 다음과 같은 코드를 추가 합니다.

 

private static String Tag_Log = "OpenCV Test : ";

@Override
protected void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
    setContentView(R.layout.
activity_main);

   
if(OpenCVLoader.initDebug()) {
        Log.d(
Tag_Log, "OpenCV Initiallize");
    }
else {
        Log.d(
Tag_Log, "OpenCV Not Initiallize");
    }

}

 

OpenCV SDK가 로드 되는지 확인하는 간단한 코드 입니다.

다른 소스는 전혀 손대지 않아서 if 문만 추가하고 테스트 하면 됩니다.

 

 

Logcat에 설정한 문자가 잘 나오면 성공한것 입니다.

이제 지금까지 학습한 OpenCV관련 소스를 가지고 테스트를 진행하면 됩니다.

 

- copy coding -

 

예전에는 UNIX, Linux Server에 접속하려면 텔넷을 사용하였으나 보안이 강화되면서 대부분 SSH 접속으로 변경이 되어 자주 사용하는 putty와 멀티 탭 기능이 있는 mtputty에 대해 알아 봅니다. 

 

 

1. PuTTY 사용 방법

 

개발자라면 하나씩은 있거나 파일서버에 다운로드 해놓은게 있겠지만 버전이 변경되었을 수 있으니 사이트에 들어가 봅니다.

 

 

https://www.putty.org/

 

putty 사이트에 접속하면 open source라는 것과 source code도 제공한다는 간단한 소개글이 있습니다.

 

 

하단에 있는 [Download PuTTY]를 클릭하여 다운로드 페이지에 가면 처음에 Package files 라는 항목에 확장자가 msi 파일들이 있습니다.  이건 Windows 설치용 파일이고 설치하지 않고 바로 사용하기 위해 바로 아래로 스크롤하면 binary files 항목이 나옵니다.

 

 

이곳에서 필요한 파일을 받으면 됩니다.

putty telnet뿐 아니고 scp, sftp등의 제품군도 있습니다.  여기서는 64-bit x86: putty.exe를 다운받아 사용하는 방법입니다.

 

설치버전이 아니기 때문에 다운받은 putty.exe를 그냥 실행하기만 하면 됩니다.

  

처음에는 설청 창이 나타나는데 입력해야 항목은 몇개 없습니다.

 

 

접속하려는 Host 정보와 다음에 다시 접속하기 위해 설정정보를 저장하려는 Sessions 명칭(여기서는 test로 입력)을 입력하고 [Save] 버튼으로 저장을 합니다.

그리고 하단에 있는 [Open] 버튼을 클릭하면

 

 

서버에 로그인할 수 있는 창이 나타납니다.

IDPassword를 이용하여 로그인하고 작업을 하면 됩니다.

 

 

다음에 test로 저장한 서버에 접속하여 사용하려면 Saved Sessions에서 test를 클릭하고 우측의 [Load] 버튼을 클릭한 후 아래에 있는 [Open] 버튼을 클릭하면 됩니다.

 

 

2. Multi Putty 사용 방법

 

일반 putty는 창을 하나만 지원하기 때문에 여러 서버에 작업이 필요하면 계속 마우스를 이용해서 창을 옮겨다니거나 뒤에 숨어버린 창을 불러내야 하는 불편함이 있습니다.

 

하나의 창에 탭으로 구분해서 여러 서버를 접속하려면 다른 프로그램을 사용해야 하는데 개인적으로는 사용하기에는 Xshell이 좋다고 생각합니다. Xshell은 개인적인 용도로만 사용 가능하고 기업용은 구매를 해야 합니다.

1년에 2번 이상 회사를 옮겨다니는 개인적인 생각은 집에서도 회사에서 사용하게될 제품에 익숙해지는게 업무 효울이 증대되는것 같습니다.

MTPutty를 사용하기위해 multi putty 등으로 검색 합니다.

 

 

https://ttyplus.com/multi-tabbed-putty/

 

 

사이트에 들어가면 우측에 보이는것 처럼 라이센스가 freeware로 되어 있습니다.

아래에 있는 [Download] 버튼을 클릭 합니다.

 

 

이 제품도 putty 처럼 설치 버전과 무설치(Portable) 버전을 제공하고 있습니다.  대부분 무설치를 선택 하겠죠?

둘 중 어느것을 사용하든 설치 또는 압축을 풀어준 폴더에 들어가서 mtputty.exe 파일을 실행 합니다.

 

 

프로그램이 실행되고 간단한 프로그램에 대한 설명들이 나와 있습니다.

좌측에 트리모양의 Server쪽에 서버들을 등록해서 리스트로 볼 수도 있고 폴더를 만들어 서버들을 종류별로 묶어서 관리하는 방법도 있습니다.

 

폴더를 만들어서 서버를 추가하는 방법을 사용해 보도록 하겠습니다.

 

 

메뉴에서 Server > Create Folder 를 선택 합니다.

Create Folder 창이나오면

 

 

서버들에 공통되는 특징을 골라 폴더명을 적당하게 입력해 줍니다.

 

 

팝업 창에 입력한 Cloud 라는 이름의 폴더가 생성 되었습니다.

 

이제 생성한 폴더에 서버를 하나 등록해 봅니다.

 

 

생성된 Cloud 폴더를 선택 하고 메뉴에서 Server > Add Server 를 선택 합니다.

이번에도 접속하려는 Server에 대한 정보를 입력하는 창이 하나 나타납니다.

 

 

팝업 창에 접속하려는 Server 정보를 입력합니다.

Server name : 접속하려는 서버 주소

Protocol : 접속 프로토콜로  SSH

Port : 22 (SSH port)

Display name : Cloud 폴더 하단에 생성되는 이름

 

입력이 완료되면 [OK] 버튼을 클릭해주면 정보가 추가 됩니다.

 

 

처음에 기본적으로 보이는 PuTTY sessions 폴더는 putty 사용자라면 기존에 putty에 입력해놓은 Server 리스트가 나오는것 입니다.  , 기존에 putty를 사용하고 접속 서버들을 등록 했다면 그정보를 mtputty가 불러와서 트리 구조에 추가를 해주어 사용할 수 있도록 합니다.

MTPuTTY는 기존 PuTTY를 예쁘게 포장한 툴이라고 생각하면 됩니다.

 

- copy coding -

 

 

오라클 클라우드에 서버 인스턴스를 생성하고 FTP로 접속을 하는 방법입니다.

OCI에 서버 인스턴스 생성하기를 보시려면 전에 작성한 글을 참고 하세요.


[OCI] Oracle Cloud 평생 무료 서버 만들기

 

 

FTP로 접속을 위해서는 인스턴스의 Public IP를 확인해야 합니다.

오라클 클라우드에 접속해서 인스턴스 페이지로 이동 합니다.

 

 

좌측 하단 Compartment에서 root를 선택하여 실행중인 인스턴스를 확인 합니다.

root 이외에 다른 이름으로 생성하였다면 접속할 compartment를 선택하면 됩니다.

 

 

저는 아직 하나만 생성해서 리스트에 하나만 나옵니다.

여기서 Public IP가 외부에서 서버로 FTP 접속할때 사용하는 IP 입니다.

IP는 확인 했으니 WindowsFTP Client에서 접속하는 방법을 알아 봅니다.

 

 

1. FileZilla 접속 설정

 

먼저 FileZilla를 이용한 접속 설정 방법입니다.

윈도우에서 FileZilla를 실행합니다.

 

 

메뉴에서 [파일 > 사이트 관리자]를 선택 합니다.

 

 

그리고 사이트 관리자 팝업 창에서 New Site 버튼을 클릭하고 접속 정보를 입력 합니다.

저는 기존에 생성해놓고 사용하지 않는 접속정보가 있어서 새 사이트2를 그냥 이용했습니다.

 

프로토콜 : SFTP 선택

호스트 : OCI에서 확인한 Public IP를 입력해 줍니다.

포트 : 22 (입력 안해도 SFTP 기본으로 접속합니다)

로그온 유형 : 키 파일 선택

사용자 : opc (최초 사용자는 opc 입니다)

키 파일 : 찾아보기 버튼을 클릭해서

 

 

인스턴스를 만들때 저장해 놓은 키 xxx(각자 저장할때 만든 파일명).key를 선택 합니다.

 

 

모든 접속정보를 입력 했으면 [연결] 버튼을 클릭 합니다.

 

 

새로 접속하려는 사이트 연결 정보가 나오면 [확인] 버튼을 클릭 합니다.

 

 

접속이 완료되었습니다.

 

 

2. WinSCP 접속 방법

 

이번에는 WinSCP를 이용하여 Oracle Cloud Server에 접속하는 방법입니다.

FileZilla와 동일하고 키 설정하는 부분만 차이가 있습니다.

WinSCP를 실행 합니다.

 

 

실행하면서 바로 Login 팝업 창이 나타납니다.

Login 팝업 창이 안보이면 New Session 탭을 클릭해 줍니다.

 

 

FileZilla와 동일하게 Public IPopc 등 접속정보를 입력합니다.

 

키를 등록하는데 기존에 저장한 키(확장자 key)를 인식하지 못하여 ppk로 변경하는 작업을 진행하고 키를 등록해야 합니다.  그냥 아래 순서대로 진행하면 됩니다.

 

키를 등록하기 위하여 [Advanced] 버튼을 클릭 하고 Advanced를 선택해 줍니다.

 

 

Advanced Site Settings 팝업 창이 나타납니다.

좌측 메뉴에서 SSH > Authentication을 선택하고

우측에서 Private key file:에서 찾기 버튼(...)을 클릭 합니다.

 

 

WinSCPkey 확장자 파일은 안보이기 때문에 All Files를 선택해야 합니다.

그리고 xxxx.key 파일을 선택해 주는데 WinSCPPuTTY에서 생성하는 키 형태를 지원하므로 변경을 하겠다고 합니다.

 

 

파일을 PuTTY 형태로 변경을 위하여 [OK] 버튼을 클릭 합니다. 

 

 

그럼 변경된 파일을 저장할 위치를 물어보는데 그냥 동일한 위치를 선택하고 [저장] 버튼을 클릭합니다.  확장자가 달라 기존파일을 덥어쓰지는 않습니다.

 

 

파일이 저장 되었습니다. [OK] 버튼을 클릭 합니다.

 

다시 파일 찾기를 선택해서 변경된 xxx.ppk 파일을 선택해 줍니다.

 

 

키 선택이 완료 되었습니다.  [OK] 버튼을 클릭 합니다.

 

 

선택한 키 정보가 보이지는 않지만 모든 설정이 완료 되었습니다.

이제 [Login] 버튼을 클릭 하면

 

접속하려는 서버에 대한 확인을 하고

 

 

접속이 완료 됩니다.

많은 FTP Client 프로그램이 있지만 많이 사용하는 2개만 알아보았습니다.  다른 프로그램도 비슷하게 설정하면 됩니다.

 

- copy coding -

 

Linux에서 사용하는 원격지 파일전송 명령어인 SCP 기능을 기반으로 Windows에서도 사용할 수있도록 만든 프로그램으로 FileZilla와 같이 무료로 많이 사용되고 있습니다.

 

개인적으로는 FTP를 사용하기위한 정보 제공용 화면 구성으로는 FileZilla보다 못한것 같은데 요즘에는 CloudServer를 사용하면서 많이 사용되고 있는것 같습니다.

 

설치를 위해 검색 사이트에서 winscp로 검색을 합니다.

 

 

링크를 타고 사이트로 이동합니다.

https://winscp.net/eng/index.php

 

 

 

특징이라면 여러 무료 application 사이트들에 비해 광고가 많이 붙어있습니다.

[DOWNLOAD NOW] 버튼을 클릭합니다.

 

https://winscp.net/eng/download.php

 

 

 

다운로드 페이지에 3개의 링크가 있습니다.

여기서는 [DOWNLOAD WINSCP] [OTHER DOWNLOADS] 두개의 버튼에 대해 설명합니다.  중간에있는 Microsoft 이미지는 마이크로소프트 스토어로 이동합니다.

 

 

1. WinSCP 설치버전

 

먼저 첫번재 [DOWNLOAD WINSCP] 다운로드 버튼부터 눌러 파일을 다운받습니다.

그리고 다운받은 파일을 실행 합니다.

 

 

[모든 사용자를 위한 설치] 를 클릭합니다.  개인 컴퓨터가 아닌 공용으로 사용하는 서버의 유저라면 [현재 사용자를 위한 설치]를 하셔야겠죠.

 

 

저작권에대해 [수락] 버튼을 클릭 해줍니다.

 

 

 

특별히 시스템에 영향을 주는 프로그램이 아니니 그냥 [일반 설치]를 선택하고 [다음] 버튼을 클릭해 줍니다.

 

 

 

개인 취향에 따라 화면 구성을 선택해도 되지만 통상적으로 커맨더 형태의 화면이 좋을것 같습니다.

[다음] 버튼을 클릭해 줍니다.

 

 

 

설정을 완료 하였다면 [설치] 버튼을 클릭하고 잘못 선택한 부분이 있으면 [뒤로] 버튼을 클릭해서 설정을 변경합니다.

 

 

 

설치버튼을 클릭하면 바로 설치가 진행 됩니다.

 

 

 

설치가 종료되었습니다. [완료]버튼을 클릭하여 WinSCP를 한번 실행해 봅니다.

 

 

 

처음 시작 화면부터 접속할 서버 정보를 입력할 수 있도록 팝업을 제공합니다.

 

 

파일 프로토콜에 파일서버용 Amazon S3도 기본으로 제공합니다.

 

 

여기서는 일반적인 SFTP 사용을 위해 접속용 세션 설정정보를 입력 하고 [로그인] 버튼을 클릭합니다.

 

 

 

2. WinSCP 무설치 버전

 

 

이제 처음 다운로드 페이지에서 마지막 Other 다운로드에 관한 설명입니다.

다시 다운로드 페이지로 이동하여

 

 

마지막 [OTHER DOWNLOADS] 버튼을 클릭하면 무설치(portable) 프로그램을 다운로드 받을 수 있습니다.

 

 

3개의 다운로드가 있는데 첫번 째 Portable executables 에 있는 버튼을 클릭 하여 파일을 다운로드 받습니다.

 

WinSCP-5.21.8-Portable.zip

압축파일이 다운로드 되는데 적당한곳으로 옮기고 압축을 풀어줍니다.

 

 

폴더로 이동하여 여기에서 WinSCP.exe 파일을 실행합니다.

 

 

처음에 설치버전으로 작업한것과 동일한 사용 화면을 볼 수 있습니다.

접속 서버정보를 입력하여 사용하면 됩니다.

 

- copy coding -


1···78910111213···118

+ Recent posts