전체 66 / 4 페이지
원글 : https://damoang.net/free/345706 조금 손 본 것을 자료실애도 올려봅니다.
706 조회
1 추천
2024.04.23 등록
@에르메스 님께서 올려주신 아이슬란드 오로라 사진을 고화질로 요청하신 분이 있으셔서 업스케일링 해서 올립니다. 원글 : 아이슬랜드의 오로라..jpg > 자유게시판 | 다모앙 | DAMOANG
608 조회
13 추천
2024.04.22 등록
앙UI 최신 버전을 다운로드 하실 수 있습니다.이 글에는 절대 댓글을 달지 말아주세요.댓글이 달리면 제가 이 글을 수정할 수 없기 때문에새버전을 업데이트 할 수 없습니다.피드백 및 문의사항은 강좌 게시판의 글에 댓글로 작성해주시기 바랍니다.피드백 게시물 바로가기 <- 클릭​감사합니다.(비공식 베타 버전은 제가 다음 버전 적용테스트 하기 위한 목적의 파일로치명적 오류가 있을 수 있음으로 적용하지 마시기 바랍니다)공지사항 : 다운 링크 생성 정책 변경사항 반영v1.1.4 설명 참고하세요.다모앙의 다운로드 파일 링크 생성 규칙 변경되어 안내메시지 추가휴먼에러 패치ㅡㅡ;(업데이트시 "in" 메시지가 출력되고 있습니다 ㅜㅜ)마이너 업데이트 공지v1.1.2모바일에서 정상동작하지 않는 버그 패치모바일에서 기본UI 덮어쓰기 사용시 폰트사이즈, 줄높이만 변경 가능하도록 기능 제한 조치v1.1.2 mobile update1모바일에서 재로그인 안되는 예외 케이스 패치PC 사용자는 문제가 없을 경우 안 받아도 됩니다. 추 후 다음 버전에 어짜피 통합됩니다.v1.1.3 update1모바일에서는 다모앙 보안 정책 영향으로 게시글 외부에서 링크를 다운로드할 때오류가 발생합니다.모바일에서 접속시 이와 관련된 안내 메시지가 나오도록 수정하였습니다.모바일에서는 자료실로 직접 이동하여 다운로드 해주세요.링크 설명에 마이너 업데이트 내역이 요약되어 표시됩니다. 클릭하셔서 자세한 내용 확인해보세요.마이너 업데이트는 내용 보시고 필요하신 것 아니면 넘기세요.추 후 stable 버전 업 할 때 다 반영됩니다.​버전 히스토리v1.1.4다모앙 다운로드 링크 생성 규칙 변경다모앙에서 파일 다운로드 링크 생성시 랜덤 토큰을 붙이도록 변경되었습니다.이 영향으로 다운로드 링크가 로그인 할 때마다 바뀝니다.토큰 에러 발생시 업데이트 확인 버튼을 클릭해서 최신버전으로 업데이트 하도록 안내 메시지를 보여주도록 수정했습니다.추 후 업데이트 확인 버튼 눌러야만 링크가 생성되게 변경할 예정입니다.일단 이번엔 임시로 안내 메시지만 표시합니다.v1.1.3댓글 복사 버튼 추가각 댓글마다 추천 버튼 옆에 복사 버튼이 추가되었습니다.해당 댓글의 복사 버튼을 클릭하시면 댓글 바로가기 링크가 클립보드에 복사됩니다.복사 후 해당 링크를 필요한 곳에 붙여넣고 클릭하면 해당 글의 댓글로 바로가기가 됩니다.수동 업데이트 확인 추가다모앙 트래픽 절감을 위해 업데이트 확인 주기를 하루 최대 2회로 제한을 했었습니다.그 때문에 업데이트가 필요할 때 자료실에 매번 가야하는 불편이 생겼습니다.그 불편을 줄이기 위해 업데이트 확인 버튼을 만들었습니다.업데이트 확인 버튼을 누르면 그 즉시 새버전을 확인하고 앙UI 설정 화면에 반영됩니다.새버전이 있을 경우 업데이트 된 링크를 클릭하여 다운로드하실 수 있습니다.v1.1.0~1.1.2다모앙 기본UI 덮어쓰기 기능 추가메뉴위치, 폰트 사이즈, 줄 높이, 화면너비, 메뉴너비 정보를 설정할 수 있습니다.이 기능을 활성화 하시면 다모앙 UI커스텀의 설정중 위 5가지 설정은 무시됩니다.앙UI 설정이 기존 설정을 덮어 쓰도록 처리 했으나 혹시나 있을 충돌에 대비하여둘 중 하나만 설정하여 쓰시길 추천드립니다(그냥 중복하여 설정하셔도 제가 테스트했을땐 문제가 없긴 했습니다)(다모앙 UI커스텀에서 위 5가지 항목만 값을 비워두시면 됩니다)아래는 설정화면 이미지입니다. 기능활성화 여부에 따라 5가지 기능이 통째로 활성/비활성 됩니다.Kiwi 브라우저로 모바일에서 사용하시는 경우 "폰트사이즈, 줄 높이"만 설정 가능합니다.v1.0.11다모앙 트래픽 부담을 덜기 위한 조치앙UI 새버전 체크 및 다운로드 링크 가져오기시 발생하는 트래픽을 99%이상 감소시킵니다.다모앙이 트래픽 증가로 힘들어하고 있기에 이에 동참하는 패치입니다.이 패치 이후 새버전 체크 및 다운로드 링크 가져오기는 하루 최대 2회만 시도합니다.내부적인 변화임으로 사용자는 평소처럼 사용하시면 됩니다.다모앙을 위해 앙UI 사용하시는 분은 반드시 패치 해주시길 바랍니다.v1.0.10프로필 영역에 내글/내 댓글 표시 기능 삭제- 다모앙에서 공식적으로 전체 글 대상으로 내글/내댓글 조회 기능을 넣어줌- 적용 버튼을 한번 눌러줘야 프로필에 추가된 것이 삭제됨글 조회시 목록 버튼에 조회중인 페이지로 이동하기 기능 삭제- 다모앙에서 공식적으로 같은 기능 제공함글 조회시 작성자의 글/댓글 목록 보기 최적화내글|내댓글 메뉴에 알림도 나오도록 수정- 다모앙에서 알림 정보도 제공하고 있음으로 반영함휴먼에러(새버전 알림 기능을 잠시 꺼둔걸 다시 살림)- 테스트하다가 새버전 알림 기능을 완전히 꺼버림 ㅡㅡ;- 1.0.9 버전 적용하신 분은 상위버전 꼭 적용하세요.v1.0.9구글 광고 삽입 안내메시지가 hidden 처리되지 않고 출력하는 경우 메시지 삭제- 광고는 그대로 출력되고 나오지 말아야 할 시스템 메시지만 삭제함자잘한 최적화 작업(벼그 패치 등)작업했던 기능들이 꽤 있는데 어느새 보니 다모앙 UI커스텀에 유사한 기능들이 있어서 배포하지 않았습니다. 앙UI의 목적은 다모앙이 자리를 잡아가기까지 보조적인 역할을 하다가 서서히 사라지는 것입니다. 또는..모두에겐 필요 없지만, 있으면 누군가에게 좋은 기능을 제공하는 수준으로 남겨질 수도 있겠네요..^^;v1.0.81. 앙UI 업데이트 알림 유무 설정 기능 추가- 업데이트 발생시 화면 좌하단에 다모앙 알림이 뜨는 것을 설정할 수 있게 했습니다.- 잦은 알림이 불편하신 분은 이 설정을 꺼주세요.- 이 설정과 상관없이 앙UI 설정 화면에는 업데이트 발생시 "새버전등장"은 표시됩니다.2. 모바일 사용시 상단메뉴 한줄에 보이게 수정- 모바일 사용시 낮은 해상도 폰의 경우 가로폭이 좁아서 두줄로 상단메뉴가 보이고 있었습니다.- 모바일 접속시 다모앙 alpha 로고의 alpha는 감추고 보이지 않게 설정했습니다.3. 앙UI 설정 버튼 변경- 앙UI 텍스트를 앙, UI가 번갈아가며 나오도록 수정하였습니다.- 2번 사항과 연관되어 모바일 환경에서 공간확보 차원에서 적용하였습니다.v1.071. 자동로그인 치명적인 휴먼에러가 있었습니다. 앞으로 좀 더 꼼꼼히 살피겠습니다. ㅜㅜ- 꼭 1.0.7 버전으로 업그레이드 하셔야 합니다.- 다음 버전에서는 찾은 업데이트 알람으로 불편하신 분들을 위해 알림을 끄는 기능을 넣도록 하겠습니다.v1.0.61. 자동 재로그인 설정앙UI 설정 화면에서 자동 재로그인 설정의 사용 유무 및 소셜 로그인 종류를 선택할 수 있습니다.어떤 이유에서든 세션이 끊길 경우 자동으로 재로그인을 시도합니다.로그아웃 버튼을 눌러도 세션이 끊겼다고 인지하고 재로그인을 시도합니다.이 옵션을 적용하면 로그아웃 상태를 유지할 없습니다. 동의하시는 분만 활성화 하세요.(안 쓰실 분은 설정에서 미사용을 선택하시면 됩니다<기본값:미사용>)해당 브라우저에서 선택한 소셜 계정으로 최초 1회는 로그인을 해야 자동 로그인이 됩니다.로그인 기록이 없을 경우 소셜 로그인 하는 페이지가 열리게 됩니다.휴먼 에러 발생할 수 있습니다. 무한 로그인 시도 등 오류 발생시 이전 버전으로 변경 후 피드백 게시판에 신고 부탁드립니다.v1.0.5아래 샘플 이미지 참고(왼쪽이 플로팅 메뉴 노출된 상태, 오른쪽이 메뉴 클릭한 상태)1. [모바일] 모바일 기기 사용시 플로팅 왼쪽메뉴 추가Kiwi 브라우저를 다운 받으시고 확장 프로그램을 설치하시면 앙UI를 쓰실 수 있습니다.모바일 기기에서 다모앙 접속시 왼쪽 아래에 플로딩 메뉴 아이콘이 출력됩니다.아이콘을 터치하면 왼쪽에 슬라이딩 메뉴가 등장합니다.다모앙에서 오른쪽 메뉴, 앙UI는 왼쪽 메뉴를 제공합니다. 상황에 맞게 편하신걸 사용하세요.​2. [모바일] 댓글 버튼 그룹 위치 이동 기능 UI개선약간 개선을 하였으나 해상도가 낮은 구형폰엔 이 기능은 비활성화 하시길 추천드립니다.3. 앙UI 버튼이 로그아웃시 프로필쪽에 생기는 문제 조치(은근슬쩍 패치ㅡㅡ;)​v1.0.41. 소모임 메뉴 목록 못 가져오는 문제 조치- 다모앙 소스의 소모임 목록 클래스명이 변경되어 변경된 이름으로 현행화v1.0.31. [조회] 작성자의 작성 댓글/글 목록조회 건수 최대 1000개 -> 페이징 없이 최근 30개로 제한(성능문제로 제한함)작성글/댓글 클릭시 새창으로 띄우도록 조치2. [메인] 앙UI 업데이트 발생시 다모앙 알림 뜨도록 조치알림을 클릭하면 앙UI 설정 화면이 뜸새 버전을 다운 받고 적용해야 알림이 사라집니다.3. 내가 작성한 댓글 배경색 변경(검정색 계열로) 색상 선택 넘 어려워요 ㅡㅡ;4. 다모앙 개발진에서 사이드메뉴 스크롤/고정 관련 기능을 바꾸고 있네요.기본값 : 메뉴 스크롤인 듯 합니다. 고정하는 기능은 아직 동작하지 않네요.이건 개발진에서 작업중이니 그냥 두겠습니다.v1.0.1 ~ 1.0.21. 새버전 체크시 버전이 undefined로 뜨는 문제 조치​2. 메뉴 스크롤 관련 오류 수정3. 글 조회시 작성자의 작성 댓글/글 목록 보이지 않는 문제 조치4. 홈으로 고정된 단축키 9번을 모든 메뉴 대상으로 설정 가능하게 오픈5. 글 조회시 작성자의 작성 댓글/글 목록 가로폭 꽉차게 수정(1.0.2)
4380 조회
28 추천
2024.04.22 등록
킨들에서 보려고 만들어봤습니다. 이북리더기에 넣어서 보시면 좋을듯 합니다.
471 조회
9 추천
2024.04.22 등록
다른 사이트에 올렸던 것을 모두 삭제하여, 다모앙에 다시 올려놓습니다. 필요하신 분은 다운받으시고, 마음껏 재배포 하셔도 괜찮습니다. 아래 사이트의 "Shop" 메뉴에 들어가셔서 2nd edition 클릭하시고 이름과 이메일 넣으시면 (아무거나 넣어도 됩니다.) 무료로 다운로드 받으실 수 있습니다.
432 조회
17 추천
2024.04.22 등록
-
1251 조회
11 추천
2024.04.21 등록
텔레그램에서 사용하던 2014.04.16 추모 리본입니다 원래 mp4 파일인데 gif로 변환했습니다 화질 저하있습니다 mp4는 어떻게 첨부하는지 몰라 같이 첨부하지 않습니다
151 조회
8 추천
2024.04.21 등록
책을 낱장으로 분리합니다. 책을 한 페이지씩 스마트폰으로 찍습니다. 이 때 스마트폰과 바닥이 수직으로 놓여야 합니다. 책을 놓을 배경색은 검은색을 추천합니다. 상대적으로 돋보여서 책 영역 선택이 더 잘 됩니다. 책 사진에서 책 영역만 추출하여 파일로 저장하려고 합니다. 책 사진은 수직 수평이 안 맞게 찍히는 경우가 많습니다. 그래서 기울기를 알아내고, 기울기만큼 회전해야 합니다. 책 영역만 선택하여 파일로 저장하면 파일의 크기가 줄어듭니다. python과 opencv를 주로 사용해서 기능을 구현했습니다. 저는 프로그래머가 아니며, chatGPT4에게 질문+수정을 반복하여 만들었습니다. 이 코드는 59번째로 수정한 코드입니다. 다른 어떤 사람의 코드도 삽입하지 않았습니다. 퍼블릭 도메인입니다. 그러니 여러분도 마음껏 사용/추가/변형하셔도 됩니다. pyqt5를 사용해서 GUI까지 추가한 코드도 만들었습니다만, 좀 허접한 GUI라서 그 코드는 공개하지 않았습니다. 컴파일해서 실행 파일을 제공하면 일반 유저에게 더 편리하겠지만, 파일 용량이 100MB 정도 됩니다. C:\input 폴더에 책 사진 파일들을 넣고 이 프로그램을 실행하면, C:\output 폴더에 책 영역만 저장된 파일로 저장됩니다. 모든 파일들을 처리하면 프로그램이 자동으로 종료됩니다. 사진 파일 1개를 처리하는 데에 대략 1초 정도 걸립니다. 실행 파일을 더블 클릭하는 것 외에 어떠한 추가 동작도 필요하지 않습니다. pyqt5를 사용해서 만든 GUI에는 처리된 파일의 수/전체 파일의 수를 표시하는 코드가 들어 있습니다. openCV에는 컨투어를 찾는 함수가 있는데요, 이 함수는 우리가 기대하는 방식으로 동작하지 않았습니다. 그래서 면적이 가장 큰 컨투어를 찾은 다음에 '가장 큰 폐곡선으로 이루어진 영역'을 추가로 찾아야 합니다. 책 사진을 찍을 때 조명 때문에 비스듬한 각도로 찍으면 책 모양이 직사각형이 안 됩니다. 이 경우에는 회전하고 자르는 함수 대신에 형태변환 함수를 사용해야 합니다. 이 코드도 만들기는 했는데, 작동 방식이 이해가 잘 안 되었습니다.. 쩝 수동으로 책 사진을 회전하고 잘라야 할 때도 생길 겁니다. 이 코드는 이미지 뷰어 코드도 포함되어야 하고, 확대 축소하는 코드도 포함되어야 하는데, 제가 만들기에는 너무 복잡해서 접었습니다. import cv2 import os import numpy as np import sys folder_path = "C:/input" # 작업하려는 폴더 경로 file_list = os.listdir(folder_path) image_extensions = [".jpg", ".jpeg", ".png"] # 그림 파일만 불러온다 image_files = [file for file in file_list if any(file.lower().endswith(ext) for ext in image_extensions)] # 각 파일을 하나씩 불러온다 for image_name in image_files: # 이미지 파일을 불러온다 image = cv2.imread("C:\\input\\{}".format(image_name)) # 그레이 스케일 및 이진화 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) _, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU ) # 컨투어 찾기 contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 가장 큰 컨투어 찾기 largest_contour = max(contours, key=cv2.contourArea) # 가장 큰 컨투어에 불필요한 점/점들이 포함된 경우가 종종 발생하기 때문에 제거할 필요가 있다 # 새로운 이미지 생성 (검은색 배경) new_image = np.zeros_like(binary) # 가장 큰 컨투어 중에서 면적이 가장 큰 폐곡선 찾기 largest_closed_contour = max([c for c in contours if cv2.contourArea(c) > 0], key=cv2.contourArea) # 면적이 가장 큰 폐곡선 안에 있는 흰색 점들만 남기고 나머지는 삭제하여 새 이미지에 저장 cv2.drawContours(new_image, [largest_closed_contour], -1, (255), thickness=cv2.FILLED) # 컨투어를 둘러싼 가장 작은 사각형 찾기 min_rect = cv2.minAreaRect(largest_closed_contour) # minAreaRect에서 반환한 4개 점은 실수값을 갖으므로, 사용하려면 정수로 변환한다 box_points = cv2.boxPoints(min_rect) box_points = np.intp(box_points) # 4개 점을 좌표값에 따라서 번호를 부여한다 # 원래의 의도는 좌상, 우상, 좌하, 우하 순서로 P1, P2, P3, P4를 부여하려고 하였다 # 그러나 프로그래머의 일반적인 코드 규칙에 따라서 점의 번호를 부여하기로 생각을 바꿨다. # The order will be P1 (top-left), P2 (top-right), P3 (bottom-left), P4 (bottom-right) box_points = sorted(box_points, key=lambda x: (x[1], x[0])) if box_points[0][0] > box_points[1][0]: box_points[0], box_points[1] = box_points[1], box_points[0] if box_points[2][0] > box_points[3][0]: box_points[2], box_points[3] = box_points[3], box_points[2] # 프로그래머의 일반적인 코드 부여 방법에 따라서 점의 번호를 정했다 P1 = box_points[0] P2 = box_points[1] P3 = box_points[2] P4 = box_points[3] if P1[0] < P2[0]: # 기울기가 양수일 때(왼쪽으로 기울었다:시계방향으로 회전해야 한다) x1, y1 = P1[0], P1[1] x2, y2 = P2[0], P2[1] # 기울기 slope를 계산한다. delta_x = x2 - x1 delta_y = y2 - y1 slope = delta_y / delta_x if delta_x != 0 else None # 기울기에 따라서 회전할 각과 방향을 계산한다 # Calculate the angle in radians and then convert to degrees # The angle must be negative for a clockwise rotation angle_of_rotation = -np.degrees(np.arctan(slope)) # 시계방향으로 angle만큼 회전하고, 변수에 저장한다 # center에 들어갈 점 P의 좌표는 데이터형을 변환해야 한다 center = (int(P1[0]), int(P1[1])) angle = -angle_of_rotation M = cv2.getRotationMatrix2D(center, angle, 1) rotated_image = cv2.warpAffine(image, M, (image.shape[1], image.shape[0])) # 회전한 이미지를 저장하지 않고 변수를 바로 사용하여 다음 단계의 작업을 진행한다 #그레이 스케일 및 이진화 gray1 = cv2.cvtColor(rotated_image, cv2.COLOR_BGR2GRAY) _, binary1 = cv2.threshold(gray1, 127, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU ) # 회전한 이미지의 컨투어 찾기 contours1, _ = cv2.findContours(binary1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 회전한 이미지의 가장 큰 컨투어 찾기 largest_contour1 = max(contours1, key=cv2.contourArea) # 새로운 이미지 생성 (검은색 배경) new_image1 = np.zeros_like(binary1) # 가장 큰 컨투어에 불필요한 점/점들이 포함된 경우가 종종 발생하기 때문에 제거할 필요가 있다 # 회전한 이미지의 가장 큰 컨투어 중에서 면적이 가장 큰 폐곡선 찾기 largest_closed_contour1 = max([c for c in contours1 if cv2.contourArea(c) > 0], key=cv2.contourArea) # 면적이 가장 큰 폐곡선 안에 있는 흰색 점들만 남기고 나머지는 삭제하여 새 이미지에 저장 cv2.drawContours(new_image1, [largest_closed_contour1], -1, (255), thickness=cv2.FILLED) # 회전한 이미지의 컨투어를 포함하는 가장 작은 사각형을 찾는다 min_rect1 = cv2.minAreaRect(largest_closed_contour1) # minAreaRect에서 반환한 4개 점은 실수값을 갖으므로, 사용하려면 정수로 변환한다 # Convert it to box points (four points) box_points1 = cv2.boxPoints(min_rect1) box_points1 = np.intp(box_points1) # # 4개 점을 좌표값에 따라서 번호를 부여한다 # 원래의 의도는 좌상, 우상, 좌하, 우하 순서로 P1, P2, P3, P4를 부여하려고 하였다 # 그러나 프로그래머의 일반적인 코드 규칙에 따라서 점의 번호를 부여하기로 생각을 바꿨다. # The order will be P1 (top-left), P2 (top-right), P3 (bottom-left), P4 (bottom-right) box_points1 = sorted(box_points1, key=lambda x: (x[1], x[0])) if box_points1[0][0] > box_points1[1][0]: box_points1[0], box_points1[1] = box_points1[1], box_points1[0] if box_points1[2][0] > box_points1[3][0]: box_points1[2], box_points1[3] = box_points1[3], box_points1[2] # 프로그래머의 일반적인 코드 부여 방법에 따라서 점의 번호를 정했다 # 점의 번호를 앞의 점과 다르게 해서 혼동을 피했다 P11 = box_points1[0] P22 = box_points1[1] P33 = box_points1[2] P44 = box_points1[3] # 4개 점의 좌표를 이용하여 사각형 영역을 택하여 새 그림 파일로 저장한다 k = rotated_image[P11[1]:P33[1], P11[0]:P22[0]] cv2.imwrite("C:\\output\\{}".format(image_name), k) else: # 기울기가 양수가 아닐 때(오른쪽으로 기울었다:반시계방향으로 회전해야 한다) x1, y1 = P1[0], P1[1] x2, y2 = P2[0], P2[1] # 기울기를 계산한다 delta_x = x2 - x1 delta_y = y2 - y1 slope = delta_y / delta_x if delta_x != 0 else None # 기울기에 따라서 회전할 각과 방향을 계산한다 # If the slope is zero (horizontal line), we do not need to rotate. # If the slope is negative or undefined (vertical line), we rotate counterclockwise. # The angle must be positive for a counterclockwise rotation angle_of_rotation = np.degrees(np.arctan(-slope)) if slope is not None else 90 # 반시계방향으로 angle만큼 회전하여 변수에 저장한다 # center에 들어갈 점 P의 좌표는 데이터형을 변환해야 한다 center = (int(P1[0]), int(P1[1])) angle = angle_of_rotation M = cv2.getRotationMatrix2D(center, angle, 1) rotated_image = cv2.warpAffine(image, M, (image.shape[1], image.shape[0])) # 회전한 이미지를 저장하지 않고 변수를 바로 사용하여 다음 단계의 작업을 진행한다 #그레이 스케일 및 이진화 gray1 = cv2.cvtColor(rotated_image, cv2.COLOR_BGR2GRAY) _, binary1 = cv2.threshold(gray1, 127, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU ) # 회전한 이미지의 컨투어 찾기 contours1, _ = cv2.findContours(binary1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 회전한 이미지의 가장 큰 컨투어 찾기 largest_contour1 = max(contours1, key=cv2.contourArea) # 새로운 이미지 생성 (검은색 배경) new_image1 = np.zeros_like(binary1) # 회전한 이미지의 가장 큰 컨투어 중에서 면적이 가장 큰 폐곡선 찾기 largest_closed_contour1 = max([c for c in contours1 if cv2.contourArea(c) > 0], key=cv2.contourArea) # 면적이 가장 큰 폐곡선 안에 있는 흰색 점들만 남기고 나머지는 삭제하여 새 이미지에 저장 cv2.drawContours(new_image1, [largest_closed_contour1], -1, (255), thickness=cv2.FILLED) # 회전한 이미지의 컨투어를 포함하는 가장 작은 사각형을 찾는다 min_rect1 = cv2.minAreaRect(largest_closed_contour1) # minAreaRect에서 반환한 4개 점은 실수값을 갖으므로, 사용하려면 정수로 변환한다 # Convert it to box points (four points) box_points1 = cv2.boxPoints(min_rect1) box_points1 = np.intp(box_points1) # 4개 점을 좌표값에 따라서 번호를 부여한다 # 원래의 의도는 좌상, 우상, 좌하, 우하 순서로 P1, P2, P3, P4를 부여하려고 하였다 # 그러나 프로그래머의 일반적인 코드 규칙에 따라서 점의 번호를 부여하기로 생각을 바꿨다. # The order will be P1 (top-left), P2 (top-right), P3 (bottom-left), P4 (bottom-right) box_points1 = sorted(box_points1, key=lambda x: (x[1], x[0])) if box_points1[0][0] > box_points1[1][0]: box_points1[0], box_points1[1] = box_points1[1], box_points1[0] if box_points1[2][0] > box_points1[3][0]: box_points1[2], box_points1[3] = box_points1[3], box_points1[2] # 프로그래머의 일반적인 코드 부여 방법에 따라서 점의 번호를 정했다 # 점의 번호를 앞의 점과 다르게 해서 혼동을 피했다 P11 = box_points1[0] P22 = box_points1[1] P33 = box_points1[2] P44 = box_points1[3] # 4개 점의 좌표를 이용하여 사각형 영역을 택하여 새 그림 파일로 저장한다 k = rotated_image[P11[1]:P33[1], P11[0]:P22[0]] cv2.imwrite("C:\\output\\{}".format(image_name), k) sys.exit()
1059 조회
10 추천
2024.04.19 등록
[PC] 3966 x 2475 [MO1] 1893 x 4096 [MO2] 1893 x 4096
958 조회
6 추천
2024.04.19 등록
레옹이 재개봉 했다고 해서, 그냥, 제가 수년 간 사용중인 레옹 배경 올려볼께요..ㅎ 인터넷에서 구한 원본에서 위를 검게 늘리고.. 아래 글씨들은 제가 추가했습니다.원본은 보시면 도메인 주소가 있네요..언제 받았는지 기억 안나지만, 꾸준히 사용 중 이네요..ㅎ 문제없겠죠?? 문제시는 삭제하겠습니다~ 제가 텍스트 추가하고, 업스케일링해서 화질 좋은 파일도 첨부 합니다. ^^ 우리모두 ~~~ 앙
669 조회
7 추천
2024.04.17 등록
작업 표시줄 숨기기/보이기 전환 하는 유틸을 제작하였습니다 단축키 CTRL+F2키를 누르면 서로 전환 합니다 시작 시 자동실행 되고 ini 설정에서 바꿀 수 있습니다 ​ <ST.ini> [SYSTEM]ALT=0CONTROL=1SHIFT=0WIN=0KEY=VK_F2IsRunStartup=1 ​ 단축키 CTRL+F2 (CONTROL=1,KEY=VK_F2) 로그인 시 자동실행(IsRunStartup=1)
683 조회
9 추천
2024.04.17 등록
아이폰을 사용하다보니 구글포토에 업로드된 원본파일도 Heic더군요.. 그래서 자주 Jpg등으로 변환할일이 많았는데 유료프로그램 또는 웹사이트에서 구동되는 프로그램이다보니 찝찝한 느낌이 들더라구요.. 그래서 자바를 주로 사용하는 개발자이지만.. claude와 짧은 개발지식으로 Heic to jpg변환 프로그램을 제작하게 되었습니다! 혹시나 필요하신분들이 있을가 하여 github링크를 공유드립니다. 백엔드 개발자이다보니.. GUI는. 담백합니다 흑 ㅠㅠ 혹시나 하는 파일 위변조에 대한 대비책으로 체크섬도작성해두었습니다! 사용설명서및 다운로드는 아래 github링크를 이용해 주세요!https://github.com/welcomechoi/heicTojpg_python_tkinter
586 조회
20 추천
2024.04.16 등록
🎗잊지 않겠습니다 | 제작자의 말 안녕하세요. 5주기 때부터 매년 개인적인 추모로서 세월호 추모 이미지를 만들어 공유하고 있습니다. 매년 꾸준히 해오던 일인데, 벌써 10주기라니 참 시간이 빠른 것 같습니다. 유용하게 사용하셨다면 댓글 하나 남겨주세요.혹은 블로그 광고 한 번 눌러주시면 큰 힘이 됩니다. 감사합니다. 블로그 :https://jgpark.kr/847 | 다운로드 📣 다운로드 안내 크게 2가지의 버전으로 제공됩니다. 1. SNS 게시물 업로드 용(1:1) 2. SNS 스토리 업로드 용(9:16) 이번 이미지에는 10주기를 맞아, 리본 뒤에 흐릿한 '10'이라는 타이포를 포함하였습니다. 10이 있는 버전과 없는 버전으로 각각 제공합니다. 이미지 원본 압축 파일이 필요하신 분은 블로그에서 다운로드 부탁드립니다. | SNS 게시물 업로드 용(1:1) | SNS 스토리 업로드 용(9:16) | iPhone에서 이미지 저장하는 방법 다모앙에서는, 이미지를 한 번 클릭하여 새 창에 이미지가 열리면, 길게 눌러 '사진 앱에 저장'을 클릭하시면 됩니다. | 저작권 안내 이 저작물은 Creative Commons 라이선스를 채택한 저작물입니다. 세월호 10주기 이미지/JGP/ CC-BY ND 저작자 표시 및 수정금지 조건 하에 상업적/비상업적 이용 가능
349 조회
8 추천
2024.04.16 등록
서버측 메모기능이 개발될때까지 임시로 쓸 용도의 확장애드온입니다.크롬에선 크롬스토어에서, 엣지에서는 다른 스토어의 확장 설치하기로 설치가능합니다.https://chromewebstore.google.com/detail/%EB%8B%A4%EB%AA%A8%EC%95%99-%EB%A9%94%EB%AA%A8-%EC%95%A0%EB%93%9C%EC%98%A8/akmcdcllckicjamdjhbihfmblieafpof?hl=ko원문 - v1.3 개발버전 다운로드 및 설치: https://damoang.net/free/151988
396 조회
10 추천
2024.04.16 등록
타이패이 시내 지도입니다. 지역별 지도를 붙이면 한장의 큰 지도가 됩니다. 이전 게시물 3,4번 지도와 매치하시면 위치파악에 도움이 되실껍니다.
773 조회
15 추천
2024.04.15 등록
전체 검색