독수리를 타고 하늘을 날으는 꿈 해몽

 -> 모든 일이 순조롭게 진행될 것이며 부귀를 얻을 암시이다.


독수리가 높은 하늘에 머물고 있는 꿈 해몽

 -> 명성과 부를 동시에 손에 넣을 수 있다.


대형 독수리가 하늘을 나는 꿈 해몽

 -> 사랑의 라이벌이 있다는 암시이다.


독수리가 하늘 높이 나는 꿈 해몽

 -> 지위가 높아 지거나 진행하고 있는 일이 모두 잘 되어 번성할 징후이다.


자기가 독수리가 되어 새를 잡는 꿈 해몽

 -> 권세를 얻어 모든 자유를 누리며 사람들의 지도자가 될 것이다.


자신이 독수리로 변해 짐승을 잡는 꿈 해몽

 -> 공공단체에서 자신이 주도권을 잡으려고 한다.


독수리로 변한 자신이 여러 마리의 닭을 물어 죽인 꿈 해몽

 -> 자기와 관계 깊은 사람이 출가한다.


dream eagle



대형 독수리가 뭔가를 먹고 있는 꿈 해몽

 -> 행운의 여신이 당신에게 미소를 지을 것이다.


대형 독수리를 죽이는 꿈 해몽

 -> 자신의 생활은 원하는 대로 진행될 것이다.


독수리가 해치려고 달려드는 꿈 해몽

 -> 나쁜 사람으로부터 고통을 당하거나 병에 걸려서 고생할 조짐이다.


독수리가 발톱을 세우고 자신을 공격하는 꿈 해몽

 -> 경쟁자에게 지거나 또는 지배를 받게 되며 일에서 실패를 경험하게 된다.


독수리가 자신을 채어 하늘로 날아 오르는 꿈 해몽

 -> 조력자의 도움을 받게 되어 사업이나 작품활동 등에 발전이 있을 징조이다.


독수리, 매 등 사나운 새를 보는 꿈 해몽

 -> 지위와 명예가 높아지고 재물이 늘어나는 등 입신출세와 관련된 좋은 일이 있다.


독수리 따위의 새가 날아와서 몸을 무는 꿈 해몽

 -> 승진하거나, 좋은 배우자를 만나 결혼하는 등 경사가 있을 것이다.


머리 위에서 독수리가 날고 있어서 긴장하는 꿈 해몽

 -> 사랑의 경쟁자가 있음을 알려주고 있다.


매가 새를 잡아 오는 꿈 해몽

 -> 아랫사람을 통해 귀인을 모셔오거나 재물을 얻게 된다.


매가 하늘을 빙빙 돌며 나는 꿈 해몽

 -> 소망하던 일이 잘 진행되어 크게 성공할 길몽이다.


매를 보는 꿈 해몽

 -> 대중의 존경을 받으며 일에서 성공을 거두어 주위가 부러워 한다.


매가 작은 새를 잡는 것을 보는 꿈 해몽

 -> 기발한 착상이 떠올라 일을 소망대로 성사시키게 된다.


매가 자기 집 닭을 채가는 꿈 해몽

 -> 본인의 세력이나 재물의 일부가 힘있는 자에게 강탈당하게 될 것이다.


자기가 훈련시킨 매를 놓아 새를 잡는 꿈 해몽

 -> 아랫사람을 통해 재물이 생기거나 좋은 일거리, 여자를 얻게 될 것이다.


매가 날고 있지 않는 꿈 해몽

 -> 당분간 지루한 생활이 계속된다.


- copy coding -


확장자가 shp인 파일은 GIS에서 사용하는 Shapefile로 지리 공간에 대한 벡터 데이터를 담고 있는 파일 입니다바탕이 되는 지도 이미지에 레이어로 추가해서 정보를 보여주기 위해 사용을 하는데 QGIS를 설치하고 파일을 열어보는 부분까지 설명을 합니다.

 

https://www.qgis.org/en/site/forusers/download.html

 

다운로드 하기 위해서는 위에 있는 주소에 들어가보면


QGIS shp shapefile


운영체제 별로 프로그램이 준비되어 있습니다설치하려는 OS를 선택합니다저는 Windows를 선택했습니다.


QGIS shp shapefile


운영체제가 몇 bit로 작동하는지 그리고 어떤 버전을 사용할 것인가를 결정하고 파일을 선택합니다저는 최신 버전인 3.16(64bit)를 선택 했습니다.

설치는 다운로드 받은 파일을 실행해서 진행하고 특별한 변경사항이 없다면 그냥 끝까지 Next 버튼을 클릭하면 완료 됩니다화면 캡쳐 이미지만 나열해 보았습니다.


QGIS shp shapefile



QGIS shp shapefile



QGIS shp shapefile



QGIS shp shapefile



QGIS shp shapefile



QGIS shp shapefile


설치가 완료 되었습니다.

QGIS를 실행해 봅니다.


QGIS shp shapefile


처음이자 마지막으로 볼 수 있는 화면으로 [시작합시다!]를 클릭 합니다.


QGIS shp shapefile


QGIS가 실행된 모습입니다프로젝트 하나를 열어보겠습니다. QGIS는 프로젝트 단위로 관리를 합니다.


QGIS shp shapefile


보유하고 있는 프로젝트가 있으면 메뉴에서 프로젝트>열기를 선택해서 프로젝트를 가져옵니다.


QGIS shp shapefile


만일 프로젝트가 아닌 shp 파일만 가지고 있다면


QGIS shp shapefile


메뉴에서 프로젝트>새로 생성을 선택 합니다.


QGIS shp shapefile


그리고 메뉴에서 레이어>레이어 추가>벡터 레이어 추가를 선택 합니다.


QGIS shp shapefile


레이어를 추가하는 팝업을 볼 수 있는데 여기에서 원본 항목에 [...] 버튼을 이용하여 shp 파일을 선택해 주고 추가 버튼을 클릭 합니다.


QGIS shp shapefile


선택한 shp 파일을 볼 수 있습니다. 컴퓨터가 너무 오래돼서 사이즈가 큰 벡터이미지를 불러오면 버퍼링이 발생하는 군요벡터이미지로 할게 있는데 느긋한 마음으로 작업을 해야겠습니다.


- copy coding -


Contours는 이미지에서 동일한 강도의 색을 가진 경계선을 연결한 line을 찾아내는 기능입니다동일한 강도의 이미지를 찾기 위한 방법으로 먼저 배경을 binary로 검게 만들고 물체의 경계를 하얀색으로 하여 경계 line들을 찾아냅니다.  

 

cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) → image, contours, hierarchy


 

Parameter

설명

image

이미지 파일

mode

cv2.RETR_EXTERNAL : 가장 바깥쪽 컨투어만 검색

cv2.RETR_LIST : hierarchy 관계 없이 모든 컨투어 검색

cv2.RETR_CCOMP : 모든 컨투어를 검색하여 2-level hierarchy 구성

cv2.RETR_TREE : 모든 컨투어를 검색하여 full hierarchy 구성

method

cv2.CHAIN_APPROX_NONE : 모든 컨투어 좌표를 저장

cv2.CHAIN_APPROX_SIMPLE : 수평, 수직의 끝점만 남기고 생략

cv2.CHAIN_APPROX_TC89_L1, cv2.CHAIN_APPROX_TC89_KCOS :

 Teh-Chin 체인 근사 알고리즘 적용

contours

발견된 contour

hierarchy

이미지의 hierarchy

offset

shift

 

이미지에서 어떤 line을 찾을 것인가는 mode를 통해서 설정하고 필요한 line을 선별하여 찾아내고 찾은 line 정보는 method를 이용해 어떤 값을 저장할 것인가 설정하게 됩니다.   findContours() 함수가 실행되면 3개의 리턴 값을 넘겨 주게 됩니다.


findContours()는 버전에 따라 리턴 값이 변경이 되었습니다. 3.x는 3개를 리턴하고 4.x는  contours, hierarchy 2개를 리턴 합니다.  오랜만에 예전에 만들어놓은 소스를 돌렸더니 오류가 나서 놀랬네요.

 

저장된 선들을 그리는 작업은 drawContours() 함수를 이용 합니다.

 

cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) → image


Parameter

설명

image

이미지 파일

contours

이미지에서 구한 모든 contours 정보

contourIdx

contours index로 몇 번째 contours line을 그리는지 설정 한다. 음수이면 모든 contours를 그린다.

color

contours를 그리는 선의 색상 설정

thickness

contours의 선을 그리는 굵기 설정

lineType

선의 형태 설정

cv.FILLED

cv.LINE_4

cv.LINE_8

cv.LINE_AA

hierarchy

contours의 일부만 그리는 경우 사용(maxLevel과 함께 사용)

maxLevel

hierarchy가 있는 경우 0, 1, 2의 조건으로 그린다.

offset

shift

 

findContours()에서 리턴되어 저장된 line들은 drawContours() 함수를 이용하여 어떤 line을 어떤 조건으로 설정하여 그릴 것인가 결정 해주기만 하면 저장된 line을 시각적으로 볼 수 있습니다.

 


import numpy as np

import cv2

from matplotlib import pyplot as plt

 

imgFile1 = 'D:/tensorflow/images/contour001.jpg'

 

# image read

img1 = cv2.imread(imgFile1)

img1_gray = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)

rtn, img1_thr = cv2.threshold(img1_gray, 127, 255, cv2.THRESH_BINARY)

img_binary = cv2.bitwise_not(img1_thr)

img2 = img1.copy()

 

contours, hierarcy = cv2.findContours(img_binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

img_ext = cv2.drawContours(img1, contours, -1, (0, 255, 0), 5)

 

contours, hierarcy = cv2.findContours(img_binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

img_list = cv2.drawContours(img2, contours, -1, (0, 255, 0), 5)

 

plt.imshow(img1_gray, 'gray')

plt.title('img1_gray')

plt.show()

plt.imshow(img_binary, 'gray')

plt.title('img_binary')

plt.show()

 

plt.imshow(img1, 'gray')

plt.title('img_ext')

plt.show()

 

plt.imshow(img2, 'gray')

plt.title('img_list')

plt.show() 


프로그램을 간략하게 설명하면

원본 이미지를 gray로 변환합니다.


opencv contours


gray로 변환된 이미지를 다시 binary로 변환해서 배경을 검은색으로 바꾸어 줍니다.


opencv contours



cv2.RETR_EXTERNAL mode를 이용해서 바깥쪽 외각선만 추출해서 그려준 경우 입니다.

opencv contours



 cv2.RETR_TREE mode를 이용해서 전체 외각선을 찾아서 그려준 경우 입니다.

opencv contours


이런식으로  mode를 변경해가며 테스트를 진행하여 필요한 기능을 찾아내서 사용하면 됩니다.


- copy coding -


Threshold에 대해서 이미 OpenCV 5.임계처리에서 설명을 하였는데 자료를 정리 하다가 조금 다른 방법으로 다시 정리해 보았습니다.

 

cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst

Parameter

설명

src

입력 이미지 : single-channel, 8-bit or 32-bit floating point(input array)

thresh

threshold value(임계 값)

maxval

임계값을

type

thresholding type

- cv2.THRESH_BINARY : 픽셀이 thresh 보다 크면 maxval, 작으면 0

- cv2.THRESH_BINARY_INV : 픽셀이 thresh 보다 작으면 0, 크면 maxval

- cv2.THRESH_TRUNC : 픽셀이 thresh 보다 크면 maxval, 작으면 변경 없음

- cv2.THRESH_TOZERO : 픽셀이 thresh 보다 크면 변경 없음, 작으면 0

- cv2.THRESH_TOZERO_INV : 픽셀이 thresh 보다 크면 0, 작으면 변경 없음

dst

output array : src와 동일 size

 

threshold는 이미지를 grayscale로 불러와 픽셀 하나하나를 기준 값과 비교하여 기준 값을 초과하는 경우와 미달하는 경우로 나누어 새로운 값으로 설정 합니다예를 들어 커트라인을 90으로 설정 했다고 하면 하나의 픽셀 값을 가져와 90하고 비교해서 크면 A , 작으면 B 값으로 다시 설정하는 이분법적 방법으로 색상을 새로 설정 하게 됩니다이렇게 하면 특정 값 이하를 제거 하거나 특정 값 이상을 제거할 수 있겠죠.

 

import cv2

import numpy as np

from matplotlib import pyplot as plt

 

img = cv2.imread('D:/tensorflow/images/mickey.jpg', cv2.IMREAD_GRAYSCALE)

 

ret, thresh1 = cv2.threshold(img,99,255, cv2.THRESH_TRUNC)

ret, thresh2 = cv2.threshold(thresh1, 49,255, cv2.THRESH_TRUNC)

 

titles =['Original','TRUNC 99','TRUNC 49']

images = [img,thresh1,thresh2]

 

for i in range(3):

    plt.imshow(images[i], 'gray')

    plt.title(titles[i])

    plt.show()

 

opencv threshold


이 프로그램은 이미지를 하나 가져와 픽셀이 99보다 크면 255(흰색)으로 설정하고 설정된 그림을 다시 45보다 큰 값을 가지면 255(흰색)로 설정하는 프로그램 입니다.  실제 적용한 이미지를 가지고 설명을 하면


opencv threshold


미키마우스 이미지에 바탕색을 100인 옅은 회색으로 칠하고 거기에 50인 네모를 추가하여 이미지를 하나 만든 후 추가된 색상을 제거해 나가는 방식으로 원본 이미지를 복원하는 작업을 해보았습니다이미지에 따라 어떤 thresholding type을 사용할지 선택을 하고 어떤 값을 가진 부분부터 제거해 나갈지 설정을 하여 작업을 해나가면 원하는 이미지를 찾을 수 있습니다


- copy coding -



1234567···61

+ Recent posts