프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 이미지 뷰 ( ImageView ) 그림을 출력하는 위젯으로 그림이 필요하거나 화면을 화려하게 구성할 때 사용 이미지 뷰에 보여줄 그림 파일은 프로젝트의 [res]-[drawable] 에 있어야함 XML에서 "@drawable/그림아이디" 형식으로 접근함 이미지 뷰 및 이미지 버튼의 XML 속성 src : 이미지 경로를 나타냄 maxHeight/maxWidth : 이미지의 크기를 지정 scaleType : 이미지의 확대/축소 방식 지정 그림 파일이 [res]-[drawable] 폴더에 있어야 사용이 가능하다.

  • CompoundButton 클래스 Button 클래스의 하위 클래스 체크박스, 라디오버튼, 스위치, 토글버튼의 상위 클래스 체크박스 체크할 때마다 상태가 체크, 언체크로 변겨오딤 여러개의 체크박스가 있어도 서로 독립적으로 동작한다. 따라서 여러개를 동시에 체크할 수 있음. 체크박스에서 체크와 언체크가 바뀔 때의 Java 처리법 버튼 클릭과 절차가 거의 동일하다. 체크박스 변수 선언 CheckBox mycheck; 변수에 체크박스 위젯 대입 mycheck = (CheckBox) findViewById(R.id.android); 체크박스가 변경될 때 동작하는 클래스 정의 mycheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener..

  • text 속성 텍스트 뷰에 나타나는 문자열을 표현 android:text ="텍스트 입니다" text Color 속성 글자의 색상을 지정 #RRGGBB, #AARRGBB 형식 android:textColor ="#00FF00" textSize 속성 글자의 크기를 dp, px, in, mm ,sp 단위로 지정 android:textSize = "30dp" typeface 속성 글자의 글꼴을 지정 값으로 sans, serif, monospace를 설정 디폴트는 노말임 android:textface="serif" textStyle 속성 글자의 스타일을 지정 값으로 bold, italic, bold|italic 을 설정가능 디폴트는 노말임 android:textStyle="bold|italic" singleLi..

  • 이미지 파일 BMP, PNG , JPG , GIF 등 대표적인 파일 : JPG PNG 는 압축하지 않은 포멧 BMP File Format 디지털 영상 처리는 nXm 매트릭스로 데이터를 처리함. 이때 이미지 파일만이 아닌 다른 데이터 또한 저장함 File header (14byte) Bitmap Information (40byte) Color Table (4*Bits/Pixel Bytes) Image Data/Color Index Array 여기서 이미지 파일만 가져오기는 어려울 수 있다. MATLAP , Python 의 라이브러리 함수를 사용하여 가져오면 편하다. 그런데, NxM matrix 파일만 저장 할 수 있다 그러한 파일을 raw 파일 이라고 한다. 포토샵으로 .raw파일로 저장해서 불러올 수 있..

  • 파일 링크 파일 링크는 기존에 있는 파일에 새로운 파일명을 붙이는 것 하드 링크 : 기존 파일에 새로운 파일명을 추가로 생성 심벌릭 링크 : 원본 파일을 가리키는 새로운 파일 생성 리눅스 파일 구성 파일 = 파일명 + inode + 데이터 블록. 파일의 inode 번호는 ls -i 명령으로 확인 가능 파일명 앞에 출력된 숫자가 inode 파일 이름은 다르지만 inode 번호가 같다면 같은 파일 하드 링크 만들기 : ln 파일에 여러 개의 이름을 붙일 수 있는데, 이때 붙이는 파일명을 하드 링크 라고 한다. 심벌릭 링크 만들기 : -s 옵션 data1 파일의 심벌릭 링크로 data1.sl 생성 심벌릭 링크의 inode 번호를 보면 원본 파일ㅣㄴ -과 다른 번호 파일명에 ->를 넣어 원본파일이 무엇인지 알려..

  • 빅러닝 파이프 라인 빅 데이터 분석과 머신러닝은 데이터, 알고리즘으로 데이터를 처리함으로써 만들어지는 모델이다. 일반 개발자에게 코드 파이프라인이 있다면 데이터 사이언티스트에게는 빅 데이터 머신러닝 솔루션을 통해 흐르는 빅러닝 파이프라인이 있다. 빅러닝 도구 필수조건 데이터 포멧 지원 속도와 용량 확장성 시각화 지원 파이썬과 R 데이터 분석과 파이썬, R 두가지 정도 사용 구분 파이썬 R 장점 특정 주제나 용도에 국한되지 않은 배우기 휘운 언어 다양한 용도의 언어 데이터 시각화 라이브러리 생태계 데이터 사이언스의 통용어 단점 시각화 데이터 분야 도전자 파이썬 느린 속도 어렵다 파이썬 을 쓰는 이유 여러 소프트웨어 개발 영역에서 오랫동안 인기를 얻어왔기 때문 R보다 더 빠르기 때문 데이터 추출 순서 데이터..

작성일
2022. 9. 21. 15:49
작성자
WDmil
728x90

이미지 뷰 ( ImageView )

  • 그림을 출력하는 위젯으로 그림이 필요하거나 화면을 화려하게 구성할 때 사용
  • 이미지 뷰에 보여줄 그림 파일은 프로젝트의 [res]-[drawable] 에 있어야함
  • XML에서 "@drawable/그림아이디" 형식으로 접근함

이미지 뷰 및 이미지 버튼의 XML 속성

  • src : 이미지 경로를 나타냄
  • maxHeight/maxWidth : 이미지의 크기를 지정
  • scaleType : 이미지의 확대/축소 방식 지정
  • 그림 파일이 [res]-[drawable] 폴더에 있어야 사용이 가능하다.

  1. <ImageView
  2.     android:src="@drawable/r11.png" />
  3. <ImageButton
  4.     android:src="@drawable/r11.png" />
  5. <ImageView
  6.     android:layout_width="300dp"
  7.     android:layout_height="100dp"
  8.     android:scaleType="fitXY"
  9.     android:src="@drawable/r11.png" />
  10. <ImageView
  11.     android:layout_width="300dp"
  12.     android:layout_height="100dp"
  13.     android:scaleType="fitCenter"
  14.     android:src="@drawable/r11.png" />

위 코드를 적용하고 이미지를 넣으면 위와같이 변한다.

728x90
작성일
2022. 9. 21. 15:41
작성자
WDmil
728x90

CompoundButton 클래스

Button 클래스의 하위 클래스

체크박스, 라디오버튼, 스위치, 토글버튼의 상위 클래스

 

체크박스

체크할 때마다 상태가 체크, 언체크로 변겨오딤

여러개의 체크박스가 있어도 서로 독립적으로 동작한다.

따라서 여러개를 동시에 체크할 수 있음.

 

<CheckBox

    android:id="@+id/android"

    android:text="안드로이드 폰"

    android:checked="true" />

<CheckBox

    android:id="@+id/iphone"

    android:text="아이폰" />

<CheckBox

    android:id="@+id/window"

    android:text="윈도폰"

    android:checked="true" />

체크박스에서 체크와 언체크가 바뀔 때의 Java 처리법

버튼 클릭과 절차가 거의 동일하다.

  1. 체크박스 변수 선언
    1. CheckBox mycheck;
  2. 변수에 체크박스 위젯 대입
    1. mycheck = (CheckBox) findViewById(R.id.android);
  3. 체크박스가 변경될 때 동작하는 클래스 정의
    1. mycheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() 
    2. {   
    3.     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {     
    4.          // 동작 내용을 이 부분에 코딩  
    5.     }
    6. });

스위치와 토글버튼

  • 스위치와 토글버튼은 모양만 조금 다를 뿐 용도는 거의 동일하다.
  • 스위치의 주 용도는 온/오프 상태 표시이다.

<Switch

    android:checked="true" />

<Switch

    android:checked="false" />

<ToggleButton

    android:checked="true" />

<ToggleButton

    android:checked="false" />

 

라디오 버튼과 라디오 그릅 [ RadioGroup ]

  • 라디오 버튼 : 여러 개 중 하나만 선택해야 하는 경우에 사용
  • 라디오 그릅 : 라디오 버튼만 여러 개 나열하면 클릭하는 것마다 모두 중복 선택이 되므로 라디오 그룹과 함께 사용해야함

<RadioGroup

    android:id="@+id/rGroup1" >

    <RadioButton

        android:text="남성" />

    <RadioButton

        android:text="여성" />

</RadioGroup>

728x90
작성일
2022. 9. 21. 15:30
작성자
WDmil
728x90

text 속성

  • 텍스트 뷰에 나타나는 문자열을 표현
  • android:text ="텍스트 입니다"

 

text Color 속성

  • 글자의 색상을 지정 #RRGGBB, #AARRGBB 형식
  • android:textColor ="#00FF00"

 

textSize 속성

  • 글자의 크기를 dp, px, in, mm ,sp 단위로 지정
  • android:textSize = "30dp"

 

typeface 속성

  • 글자의 글꼴을 지정 값으로 sans, serif, monospace를 설정 디폴트는 노말임
  • android:textface="serif"

 

textStyle 속성

  • 글자의 스타일을 지정 값으로 bold, italic, bold|italic 을 설정가능 디폴트는 노말임
  • android:textStyle="bold|italic"

 

singleLine속성

  • 글이 길어 줄이 넘어갈 경우 강제로 한줄까지만 출력하고 문자열 맨 뒤에 '...'을 출력 값으true 와 false를 설정할 수 있고 디폴트는 false
  • android:singleLine="true"

 

Java 코드로 XML 속성 설정

기본적인 텍스트 뷰만 만들어놓고 id속성과 text만 설정한 XML파일은 다음과 같다.

 

Java 코드를 다음과 같이 설정하여 화면에 적용이 가능하다.

 

XML 속성 관련 메소드 비고
background setBackgroundColor() View클래스
clickable setClickable() View클래스
focusable setFocusable() View클래스
id setId() View클래스
longClickable setLongClickable() View클래스
padding setPadding() View클래스
rotation setRotation() View클래스
scaleX, scaleY setScaleX(), setScaleY() View클래스
visibility setVisibility() View클래스
gravity setGravity() TextView 클래스
inputType setRawInputType() TextView 클래스
password setTransformationMethod() TextView 클래스
text setText() TextView 클래스
textColor setTextColor() TextView 클래스
textSize setTextSize() TextView 클래스

 


버튼과 Edit Text

버튼과 에디트 텍스트는 사용자에게 어떤 값을 입력받기 위한 가장 기본적인 위젯이다. 두 위젯은 View 클래스와 TextView 클래스를 상속받음으로 비슷하게 사용이 가능하다.

<Text View

  • android:layout_width="match_prent"
  • android:layout_height="wrap_content"
  • android:text="위젯"/>

<Button

  • android:layout_width="match_prent"
  • android:layout_height="wrap_content"
  • android:text="위젯"/>

위와 같이 Button으로 바꾸어도 동작한다.


버튼을 클릭했을 때 동작하는 Java 코드 3단계

  1. 버튼 변수 선언
    1. Button mybutton; 
  2. 변수에 버튼 위젯 대입 
    1. mybutton = (Button) findViewById(R.id.button1);
  3. 버튼을 클릭할 때 동작하는 클래스 정의
    1. mybutton.setOnClickListener( new View.OnClickListener() {
          public void onClick(View v) {
              // 동작 내용을 이 부분에 코딩
          }
      });

에디트 텍스트의 값을 가져오는 Java 코드 3단계

  1. 에디트텍스트 변수 선언
    1. EditText myEdit;
  2. 변수에 에디트텍스트 위젯 대입
    1. myEdit = (EditText) findViewById(R.id.edittext1);
  3. 에디트텍스트에 입력된 값 가져오기 → 주로 버튼 클릭 이벤트 리스너 안에 삽입
    1. String myStr = myEdit.getText().toString();
728x90
작성일
2022. 9. 21. 00:07
작성자
WDmil
728x90

이미지 파일

BMP, PNG , JPG , GIF 등

대표적인 파일 : JPG

PNG 는 압축하지 않은 포멧


BMP File Format

디지털 영상 처리는 nXm 매트릭스로 데이터를 처리함. 이때 이미지 파일만이 아닌 다른 데이터 또한 저장함

File header (14byte)
Bitmap Information (40byte)
Color Table (4*Bits/Pixel Bytes)
Image Data/Color Index Array 

여기서 이미지 파일만 가져오기는 어려울 수 있다.

MATLAP , Python 의 라이브러리 함수를 사용하여 가져오면 편하다.

 

그런데, NxM matrix 파일만 저장 할 수 있다 그러한 파일을 raw 파일 이라고 한다.

포토샵으로 .raw파일로 저장해서 불러올 수 있다.


이미지 촬영 순서

광원 반사 -> Image Sensing -> NxM matrix 제작 후 파일생성 -> Displaying 출력

이미지를 가져와서 확인하려면 디스플레이가 있어야 한다.

 

디스플레이에 출력되는 이미지는 NxM matrix에 대한 픽셀 밝기 데이터로 출력된다. 0 - 255 [ 0은 어두움 255는 밝음 ]

 

LED display 에서 작동되는 원리

NxM matrix의 소자하나당 LED한개씩 해당한다.

 

이때 컬러를 재현하기 위해서는 다른 디스플레이를 사용해야 한다.

 RGB의 LED를 3개씩 넣은 것을 한개의 LED로 하고 제어한다.


Quantization

임의의 이미지의 밝기 레밸을 단계별로 구분하여 표현 할 수 있다.

256 단계를 2단계로 표현한다면. 양자화와 같이 표현하여 2단계로 분할하여 0 아니면 255로 분류. 반올림처리하여 매핑할 수 있다.

Sampling Effects

위치 내에 있는 픽셀을 통합하여 표현한다.

가로방향으로 임의의 픽샐마다 샘플링하여 표시하면 도트처럼 표시된다. 오른쪽으로 4개씩 띄워서 샘플링 하거나 2개씩 띄우거나 해서 표현 할 수 있다.


Image Enhancement [ 이미지 향상 ]

Gray Level Processing

픽셀 값을 Gray Level로 따지는데, 픽셀 값을 변환하는것.

(x,y)축 상의 이미지 픽셀 값을 바꾸는것

 

f(x,y)의 값을 바꾼다. 변환함수를 활용하여 바꿔준다

g(x,y) = T[f(x,y)]

 

f(x,y)라는 임의의 값을 T의 변환함수를 활용해서 다른 값으로 변환시키고 변환된 값을 출력한다.

 

변환함수

T펑션에 어떠한 함수가 들어가는지

각 펑션의 설명

Negative 펑션

들어간다고 하면, f(x,y)의 값이 64 라고 한다면, 192가 나오게 된다. 즉, 정비례로 내려가게 됨으로 큰 수 일수록 낮아지고 작은수 일수록 커진다.

즉, S= 255-r 로 표현할 수 있다.

Negative 펑션을 적용한 이미지
만약 코드로 구현한다면,

for(j=0; j < h ; j++)

{

    for(i=0; i < w ; i++)

    {

          ptr[j][i] = 255 - ptr[j][i];

    }

}

라고 표현할 수 있다.

 

Log transformation

S = c log(1+r)밝기가 어두운 구역은 더 밝게 표시해준다.

Log transformation 을 적용한 이미지 ( Log의 종류에 따라 달라질 수 있다. )
조그마한 차이에도 큰 차이를 만들어 낼 수 있다.

 

Power-Law Transforamtion

$ s = cr^\gamma  $ 

$ \gamma  $는 감마값으로 데이터의 임의 수정치이다.

감마의 차이로 데이터의 차이가 벌어진다.
감마조절로 데이터의 밝기를 조절할 수 있다. 감마가 1보다 작으면 Log함수의 효과를 볼 수 있다.감마가 1보다 크면 일정값 이상의 데이터만을 도출해낼 수 있다.이때 r값이 정규화 되지 않았을 때는 값이 반대로 바뀌기 때문에 정규화가 되어야 한다.
Power-Law Transforamtion 을 사용한 MRI 이미지 뒤 어두운 영역이 변환되어 보이는것을 볼 수 있다.
반대로 밝은 영역은 감마를 1보다 크게하면 어둡게되어 잘 보이게 된다.
Identiy 펑션S = r입력값과 출력값이 같을때를 의미함.

728x90
작성일
2022. 9. 20. 22:02
작성자
WDmil
728x90

파일 링크

  • 파일 링크는 기존에 있는 파일에 새로운 파일명을 붙이는 것
  • 하드 링크 : 기존 파일에 새로운 파일명을 추가로 생성
  • 심벌릭 링크 : 원본 파일을 가리키는 새로운 파일 생성

리눅스 파일 구성

  • 파일 = 파일명 + inode + 데이터 블록.

파일의 inode 번호는 ls -i 명령으로 확인 가능

  • 파일명 앞에 출력된 숫자가 inode
  • 파일 이름은 다르지만 inode 번호가 같다면 같은 파일

하드 링크 만들기 : ln

파일에 여러 개의 이름을 붙일 수 있는데, 이때 붙이는 파일명을 하드 링크 라고 한다.

심벌릭 링크 만들기 : -s 옵션

data1 파일의 심벌릭 링크로 data1.sl 생성

심벌릭 링크의 inode 번호를 보면 원본 파일ㅣㄴ -과 다른 번호 파일명에 ->를 넣어 원본파일이 무엇인지 알려줌

 

 


심벌릭 링크와 하드 링크의 차이

심벌릭 링크

  1. 파일의 종류가 l(소문자L) 로 표시
  2. 하드 링크의 개수가 하나. 원본파일에 이름을 추가하는것이 아니다.
  3. 파일 이름 뒤에 원본 파일의 이름이 표시된다(->data1)
  4. inode 번호가 원본 파일과 다르다. 원본파일과 심벌릭 링크 파일은 별개이다.
  5. 디렉터리에 심벌릭 링크 생성가능
  6. 파일 시스템 달라도 생성 가능

심벌릭 링크 파일의 내용은 원본 파일의 경로

심벌릭 링크에서는 원본 파일이 삭제되면 심벌릭 링크로 연결 불가

 

빈 파일 생성하기, 수정 시간 변경하기 : touch

인자를 지정하지 않으면 빈 파일이 생성된다.

이미 있는 파일을 touch 명령으로 옵션없이 사용하면 파일의 수정시간이 현재 시간으로 변경된다. [ 한번 만진다 ]

-t 옵션을 활용하여 변경시간을 지정 가능하다.

파일 내용 검색하기 : grep

인자로 지정한 문자열 검색과 행의 줄 번호를 출력이 가능하다.

파일 찾기 : find

접근권한이 없는 디렉터리는 검색할 수 없어서 허가 거부 메세지가 출력된다.

특정 사용자 계정의 소유인 파일을 찾고싶다면 -user옵션을 사용하여 찾을 수 있다.

 

find 명령으로 검색한 모든 파일을 대상으로 동일한 작업을 수행하려면 -exec 나 -ok 옵션을 사용한다.

find 명령으로 검색한 파일을 삭제하기 전에 하나씩 확인 하고 싶으면 -ok를 사용한다.

명령의 위치 찾기 : whereis

- /bin, /usr/bin, /etc, /usr/etc, /sbin, /usr/sbin, /usr/share/man 등 정해진 디렉터리를 검색하여 명령의 위치를 탐색

명령의 위치 찾기 : which

에일리어스나 PATH 환경 변수로 지정된 경로에서 파일을 검색한다.

 

728x90
작성일
2022. 9. 20. 18:21
작성자
WDmil
728x90

빅러닝 파이프 라인

  • 빅 데이터 분석과 머신러닝은 데이터, 알고리즘으로 데이터를 처리함으로써 만들어지는 모델이다.
  • 일반 개발자에게 코드 파이프라인이 있다면 데이터 사이언티스트에게는 빅 데이터 머신러닝 솔루션을 통해 흐르는 빅러닝 파이프라인이 있다.

빅러닝 도구 필수조건

  1. 데이터 포멧 지원
  2. 속도와 용량
  3. 확장성
  4. 시각화 지원

파이썬과 R

데이터 분석과 파이썬, R 두가지 정도 사용

구분 파이썬 R
장점 특정 주제나 용도에 국한되지 않은 배우기 휘운 언어 다양한 용도의 언어 데이터 시각화
라이브러리 생태계
데이터 사이언스의 통용어
단점 시각화
데이터 분야 도전자 파이썬
느린 속도
어렵다

파이썬 을 쓰는 이유

여러 소프트웨어 개발 영역에서 오랫동안 인기를 얻어왔기 때문

R보다 더 빠르기 때문


데이터 추출 순서

  1. 데이터 수집
  2. 수집한것 전처리
  3. 데이터 분류 모델을 설정한다 [ 데이터 가공한다 ]
  4. 모델의 파라미터를 파악한다
728x90