본문 바로가기

Python

(25)
이미지 회전시키기 가끔 이미지 처리를 해야할 경우가 온다. 필자의 경우에는 이러한 데이터였으며, 이 데이터의 윤곽선을 따라 따로 저장했다. 하지만, 세로로 된 이미지가 필요했다. 따라서, 간단하게 if문을 추가하여 가로로 된 이미지들을 세로로 회전시키는 작업을 했다. height, width = warped.shape[:2] if height < width: warped = cv2.rotate(warped, cv2.ROTATE_90_CLOCKWISE) 이미지(warped)의 가로 세로를 확인하여 가로가 더 길 경우 시계방향으로 90도 회전하겠다는 코드이다.
plt.imshow() 이미지 늘리기 fig, axes = plt.subplots(ncols=3, figsize=(15,10)) axes[0].imshow(warped, extent=[0,len(df_warped.columns),0,len(df_warped.index)]) sns.heatmap(df_warped, cbar=False, ax=axes[1]) sns.distplot(df_warped, bins= df_warped_len, hist=True, kde=False, rug=False, ax=axes[2]) axes[2].grid(True) plt.show() subplots를 이용하여 여러개의 사진을 한번에 띄우려고 노력했다. 제일 좌측에 있는 그림은 image 파일이이서 원본 그대로 나오게 된다. 따라서 비율 조정이 잘 되지 않았기..
wsl ubuntu에서 jupyter notebook실행 시 powershell 우분투에서 폴더를 잘 못 건드려서 새로이 설치를 해야하는 경우가 생겼다. 로컬에서 사용하던 코드들은 git에 있기에 상관이 없었다. 새롭게 ubuntu20.04를 설치하고, 주피터노트북을 실행했는데 아래와 같이 되었다. 저 이후에 주피터노트북이 실행이 되지 않았다. 지인에게 의견을 물어보았고, 제대로 작동하게 만들었기에 이 글을 쓴다. (같은 실수로 시간을 뺏기는 일이 없도록 하자.) 0. $ python >>> from notebook.auth import passwd >>> passwd() 위에서 python을 실행시킨 뒤 해당 코드를 삽입하면, 필자의 경우에는 "aragon2:$~~~ " 이라는 패스워드가 나왔다. 이를 복사두자. 아래에서 사용할 예정이다. 1. jupyter notebook --g..
ValueError: Unknown label type: 'unknown' 흠... decision tree라던지.. linear regression이라던지... 실행시키니 제목과 같은 에러가 떴다 안의 값들이 int 형태여야하는데, object로 되어있었음을 알아냈었다. df_new = df.apply(pd.to_numeric, errors='coerce') 위와같이 변환을 시켜주고 실행하니 잘 실행됨
하르 캐스케이드 얼굴 검출 에러 haarcascade를 통해 얼굴 검출을 하기 위해서 아래와 같은 코드를 삽입했다. face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') 이렇게 했더니 아래와 같은 코드가 나옴. SystemError: returned a result with an error set 구글링을 해보니, face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') 위처럼 기존 코드에 "cv2.data.haarcascades +" 를 삽입하면 에러없이 진행된다.
cv2.imwrite() plt.imshow()를 했을 때는 기존의 색상으로 잘 보였는데, cv2.imwrite()로 저장을 하려니 색상이 이상해졌음! plt.imshow()의 이미지 이후 cv2.imwrite()로 저장을 하니 아래와 같이 저장이 됨 그래서 찾아보니, matplotlib은 RGB순서로 이미지를 읽고, cv2는 BGR이라서 그렇다고 함! 따라서, image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) 로 변환 후 cv2.imwrite()로 저장하면 기존의 원하던 색상으로 저장이 되어있음을 확인함!
함수-1 코딩하다 보면 특정 기능을 반복해서 수행해야 할 때가 있습니다. 그때마다 같은 기능을 수행하는 코드를 반복해서 작성한다면 비효율적일 것입니다. 이떄 사용할 수 있는 것이 함수(function)입니다. 함수는 특정 기능을 수행하는 코드의 묶음입니다. 함수를 이용하면 같은 기능을 수행하는 코드를 반복해서 작성할 필요가 없습니다. 또한 코드가 깔끔해지고 한번 만든 코드를 재사용할 수 있어서 코드를 작성하기가 편해집니다. 앞 장에서 파이썬 코드를 작성하면서 이미 몇몇 내장 함수를 이용했습니다. 출력을 위한 print()함수, 데이터 타입을 알기 위한 type()함수 등이 바로 내장 함수입니다. 이번 장에서는 코드의 묶음인 함수를 만들고, 함수를 이용하는 방법을 알아보고 주요 내장 함수의 사용법도 살펴보겠습니다...
입력과 출력-2 키보드 입력 키보드로 데이터를 입력하기 위해서는 input() 함수를 이용합니다. 이번에는 input() 함수를 이용해 데이터를 입력하고 그값을 받아서 처리하는 방법을 살펴보겠습니다. input() 함수로 데이터를 입력하기 위한 기본 구조는 다음과 같습니다. data = input("문자열") input() 함수 안의 '문자열'은 화면에 표시되고 키보드로 데이터를 입력한 후 Enter를 누르면 입력된 데이터는 문자열 형태로 data 변수에 대입됩니다. 다음 예는 input() 함수로부터 입력받은 데이터를 print() 함수로 출력하는 코드입니다. In : yourName=input("당신의 이름은? ") print("당신은 {}이군요.".format(yourName)) Out : 당신의 이름은 ? 홍길동..