본문 바로가기

컴퓨터78

[opencv-python] cv2.imread(), numpy flatten() import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('img/iu.jpg',0) print(img) cv2.imread('이미지주소',옵션) 을 하고 출력을 해보면 [[127 127 127 ... 127 127 127] [127 127 127 ... 127 127 127] [127 127 127 ... 127 127 127] ... [127 127 127 ... 127 127 127] [127 127 127 ... 127 127 127] [127 127 127 ... 127 127 127]] 라는 결과가 나온다. 이렇듯 이미지는 행렬로 return 된다. 보통 3차원 행렬로 return 되어서 0번째 원소는.. 2020. 5. 15.
파이썬IDLE 주석 단축키 MacOs ctrl + 3 주석달기 ctrl + 4 주석해제 2020. 5. 15.
android studio flutter 처음 run 오류 : Could not determine the dependencies of task ':app:compileDebugJavaWithJavac' 해결 사용자 환경: MacOs catalina 플러터 깔고, 애뮬레이터 설치하고 실행시켰는데 Could not determine the dependencies of task ':app:compileDebugJavaWithJavac' 라는 오류가 뜨면서 실행이 안됐다 라이센스가 없다는 것 같기도 했음. 그래서 구글링해본거로 따라하니까 해결됐다. Tools -> SDK Manager 들어가서 System Settings -> Android SDK 들어가면 우측 하단에 Hide Obsolete Packages 체크박스가 있는데 이거 해제하고 보면 Android SDK Tools(Obsolete) 가 보이고 이걸 체크한후 Apply 하라고한다. 근데 이미 되어있었다... 넘어가고, 안드로이드스튜디오 터미널 창에다가 .. 2020. 5. 10.
[c++] 삼항연산자 (조건식) (조건식) ? A : B 일 때 조건문이 True인 경우 A를 반환 조건문이 False인 경우 B를 반환 예를들어 a = 1 b = 2 int c = a 2020. 3. 25.
[알고리즘] Hash 해쉬 알고리즘이라기보다 검색하면 자료구조라고 더 많이 나온다. Key -> Hash Function -> Hash -> Value -> Bucket(Slot) 으로 진행된다. Key: 입력 값. 무한할 수 있다. Hash Function: Key로 부터 Hash값을 반환하는 함수. 사용자 임의로 설정 Hash : 해쉬값을 통해서 value값과 매칭시켜 Bucket(Slot)에 저장한다. (유한) Value: 저장 값 Bucket(Slot): Value 저장소. vector / map / list / queue등을 이용한다. hash_map이라는 라이브러리가 있지만 표준은 아니기 때문에 C++ STL(자료구조) 공부할 때 목차에 없다. 예를 들면, Hash Function이 key%10 이라면 hash로 나올 .. 2020. 3. 25.
firebase 설치하기 Mac | npm firebase를 설치하는 커맨드가 npm install .. 로 시작하기 때문에 firebase를 설치하기 앞서, npm 부터 설치를 해야합니다. 여기로 들어가면, https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 설치할 수 있습니다. Recommended For Most Users로 설치해줍시다. 설치가 끝났다면, npm -v를 통해 잘 설치가 되었는지 확인해줍시다. 사진에 npm -v를 했을 때, command not found라 써있는 것은 설치 이전에 시험해봤기 때문입니다 :) 그런다음, 여기에 들어가서 firebase-tools를 까는 법을.. 2020. 2. 28.
homebrew 를 command line tools 없이 설치하기 brew install wget을 해야하는데 홈브루가 안깔려있어서 설치하려고하는데 자꾸 Downloading Command Line Tools for Xcode에서 멈춰서 CLT없이 설치하는 법을 알아봤습니다. 우선 이 파일을 다운 받고, 위치를 다운로드에서 홈브루를 설치하는 곳으로 옮겨놓습니다. 저같은 경우는 사용자/User(보통계정이름)으로 옮겨놓았습니다. 그런다음 ruby homebrew -install.rb를 입력하고 Return 키(Enter)를 눌러줍니다. 막힘없이 쫙 설치가 완료되고, 확인차 brew -v를 입력해주면 설치되어있음을 확인할 수 있습니다. 참고: https://stackoverflow.com/questions/51409923/skip-installation-of-command-.. 2020. 2. 25.
hosts 파일에 도메인 등록하기 | Ping | MacOS MacOS에서 hosts파일에 들어가려면, 터미널에 들어가서 sudo nano /etc/hosts 를 입력해주시면됩니다. Window에서는 C:\Windows\system32\drivers\etc\hosts 파일을 열어주시면 됩니다. 커맨드를 입력하고 엔터(Return)키를 눌러주시면, 패스워드 입력해주고 (본인 노트북 부팅시 암호와 동일) hosts 파일에 들어가집니다. 바로 입력 가능하므로 방향키를 통해 밑으로 가주면 입력할 준비가 끝났습니다. 전 구글을 도메인 등록해주려고합니다. 핑을 통해 구글 IP를 확인합니다. 전 구글 IP주소를 도메인에 새로 등록해주려합니다. Hosts파일은 특정 IP에 대해 자신이 이해할 수 있는 명칭을 붙여놓은 것입니다. 도메인 이름이든, 임의의 명칭이든 상관 없습니다. .. 2020. 2. 25.
ping 명령 사용하기 | request time out 나오는 이유 ping 명령어는 특정 도메인의 IP주소를 확인할 때 사용하기도하고 또는 도메인이나 IP주소를 직접입력하여 패킷을 확인할수 있습니다. 윈도우는 명령 프롬프트를 열면 되고, MAC OS는 터미널을 열거나 네트워크 유틸리티에서 Ping에 들어가서 확인하면 됩니다 ping "도메인" 을 입력하면 되고, 그만 확인하고 싶을땐 Ctrl + Z 를 누르면 됩니다. ICMP(internet control message protocol)는 호스트서버와 인터넷 게이트웨이 사이에서 메세지를 제어하고 오류를 알려주는 프로토콜인데 ping 이 이를 사용합니다. ping은 주소사이를 오가는 ICMP 패킷을 잡아서 확인합니다. 터미널에서 핑을 확인하게 될 땐, 무제한 전송을 하기때문에 ping statistics 를 확인하려면 .. 2020. 2. 24.
Whois 서버 확인해보기 http://whois.arin.net/ui/advanced.jsp Whois-RWS Advanced Search Use the form below to refine your Whois-RWS search. By using this service, you are agreeing to the Whois Terms of Use. whois.arin.net Whois 서버는 도메인을 확인하고 도메인과 관련된 사람과 인터넷자원을 찾아보기 위한 프로토콜이다. Whois 서버에서 얻을 수 있는 정보는 도메인 등록 및 관리 기관 정보 도메인 이름과 관련된 인터넷 자원 정보 네트워크 주소와 IP주소 등록자, 관리자, 기술 관리자의 이름, 연락처, 이메일 계정 기록 생성시키와 갱신시기 주 DNS서버와 보조 DNS서버 I.. 2020. 2. 24.
[알고리즘] 퀵 정렬 | Quick Sort | C++코드 해석 병합정렬(Merge Sort)과 함께 기본 정렬알고리즘인 퀵정렬. 병합정렬이 수열을 반으로 쪼개가며 정렬했다면, 퀵정렬은 기준을 두고 기준보다 작은값들, 기준보다 큰값들로 쪼개가며 정렬한다. 병합정렬은 따로 정렬해둔 값을 저장해둘 메모리공간이 필요했다면 퀵정렬은 따로 메모리공간이 필요하지 않다. 하지만 병합정렬은 언제나 시간복잡도가 일정한 반면 퀵정렬은 잡히는 기준에 따라 시간복잡도가 O(n^2)까지 올라갈수있다고한다. 코드는 이러하다. pivot이 기준 값이 되고 i가 pivot의 자리를 찾아준 다고 생각하면된다. 이해하기 쉽게 예시를들어 그림으로 설명해보자면 이런식이다. 2020. 2. 20.
[알고리즘] 병합정렬 알고리즘 | Merge Sort | C++코드 해석 분할정복(Divide and Conquer) 알고리즘을 공부하고있습니다. 병합정렬을 이해해보겠습니다, 우선은 코드는 이렇게 생겼습니다 코드를 이해하기 쉽도록 병합정렬의 개념과 예시그림을 설명하겠습니다! 병합정렬은 분할과 정렬로 나눌수있습니다. 먼저 처음과 끝의 중간에서 두 개로 분할합니다. 이후 분할된 블록들을 계속해서 최소단위까지 분할해줍니다. 8개의 수열을 분할하는 과정을 예로 들면, 이런 식이 됩니다. 코드를 보면 이에 재귀함수를 이용하였는데요, 빨간색 숫자는 재귀함수에 따라 분할이 되는 순서입니다. 재귀함수가 머리아프신분들은 저 순서를 보시면 직관적으로 바로 이해가 되실 거에요! 분할이 끝났으면 5번에서 정렬&병합 한번, 8번에서 한번, 8번 병합이끝나고 6번에 돌아와서 한번, 6번에서 끝나고 2.. 2020. 2. 20.