'프로그램 사용 > ros' 카테고리의 다른 글
| ros2 uses concol (0) | 2025.05.20 |
|---|---|
| ros 2 install on ubuntu 24.04, rviz (2) | 2025.05.17 |
| ros kinect (0) | 2025.04.09 |
| ros...? (0) | 2025.04.08 |
| ros urdf (0) | 2025.04.07 |
| ros2 uses concol (0) | 2025.05.20 |
|---|---|
| ros 2 install on ubuntu 24.04, rviz (2) | 2025.05.17 |
| ros kinect (0) | 2025.04.09 |
| ros...? (0) | 2025.04.08 |
| ros urdf (0) | 2025.04.07 |
오픈소스 OCR로 우분투에 패키지로 설치가 가능하고
gimagereader 라는 frontend도 있으니 참고를..
[링크 : https://sourceforge.net/projects/gimagereader/]
간단한 사용법은 아래와 같이 파일명 - -l eng 해주면 되는데, 아마 -를 넣어서 stdout으로 출력하라는걸지도?
| $ tesseract images/eurotext.png - -l eng |
[링크 : https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html]
psm은 어떤식으로 읽을지 모드를 설정해주는데 OSD(Orientation and Script Detection) 이라는게
있냐 없냐로, 2문자 까지 인식하게 할 순 있다(--psm 1)
+
psm 10으로 하면 단문자도 인식하게 설정이 가능하다
| $ tesseract --help-extra Usage: tesseract --help | --help-extra | --help-psm | --help-oem | --version tesseract --list-langs [--tessdata-dir PATH] tesseract --print-parameters [options...] [configfile...] tesseract imagename|imagelist|stdin outputbase|stdout [options...] [configfile...] OCR options: --tessdata-dir PATH Specify the location of tessdata path. --user-words PATH Specify the location of user words file. --user-patterns PATH Specify the location of user patterns file. --dpi VALUE Specify DPI for input image. -l LANG[+LANG] Specify language(s) used for OCR. -c VAR=VALUE Set value for config variables. Multiple -c arguments are allowed. --psm NUM Specify page segmentation mode. --oem NUM Specify OCR Engine mode. NOTE: These options must occur before any configfile. Page segmentation modes: 0 Orientation and script detection (OSD) only. 1 Automatic page segmentation with OSD. 2 Automatic page segmentation, but no OSD, or OCR. (not implemented) 3 Fully automatic page segmentation, but no OSD. (Default) 4 Assume a single column of text of variable sizes. 5 Assume a single uniform block of vertically aligned text. 6 Assume a single uniform block of text. 7 Treat the image as a single text line. 8 Treat the image as a single word. 9 Treat the image as a single word in a circle. 10 Treat the image as a single character. 11 Sparse text. Find as much text as possible in no particular order. 12 Sparse text with OSD. 13 Raw line. Treat the image as a single text line, bypassing hacks that are Tesseract-specific. OCR Engine modes: (see https://github.com/tesseract-ocr/tesseract/wiki#linux) 0 Legacy engine only. 1 Neural nets LSTM engine only. 2 Legacy + LSTM engines. 3 Default, based on what is available. Single options: -h, --help Show minimal help message. --help-extra Show extra help for advanced users. --help-psm Show page segmentation modes. --help-oem Show OCR Engine modes. -v, --version Show version information. --list-langs List available languages for tesseract engine. --print-parameters Print tesseract parameters. |
[링크 : https://kokokorin-bigbox.tistory.com/53]
테스트 해보니 1 문자는 어떻게 하든 안되는 것 같은데 회피가 가능하려나?

| $ tesseract a5.png - --psm 3 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 406 ak $ tesseract a5.png - --psm 2 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 406 Orientation: 0 WritingDirection: 0 TextlineOrder: 2 Deskew angle: 0.0000 $ tesseract a5.png - --psm 1 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 406 Too few characters. Skipping this page OSD: Weak margin (0.00) for 2 blob text block, but using orientation anyway: 0 ak $ tesseract a5.png - --psm 0 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 406 Too few characters. Skipping this page Warning. Invalid resolution 0 dpi. Using 70 instead. Too few characters. Skipping this page Error during processing. |

| $ tesseract a6.png - --psm 0 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 294 Too few characters. Skipping this page Warning. Invalid resolution 0 dpi. Using 70 instead. Too few characters. Skipping this page Error during processing. $ tesseract a6.png - --psm 1 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 294 Too few characters. Skipping this page OSD: Weak margin (0.00) for 1 blob text block, but using orientation anyway: 0 Empty page!! Estimating resolution as 294 Too few characters. Skipping this page OSD: Weak margin (0.00) for 1 blob text block, but using orientation anyway: 0 Empty page!! $ tesseract a6.png - --psm 2 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 294 Empty page!! $ tesseract a6.png - --psm 3 Warning: Invalid resolution 0 dpi. Using 70 instead. Estimating resolution as 294 Empty page!! Estimating resolution as 294 Empty page!! |
| tesseract 버전별 차이? (0) | 2023.12.27 |
|---|---|
| tesseract 학습 데이터 (0) | 2023.12.27 |
| tesseract on arm (0) | 2023.12.26 |
| 번호판 인식(tesseract) (0) | 2021.10.14 |
Neural Network gstreamer인가?
| NNStreamer provides a set of GStreamer plugins so developers may apply neural networks, attach related frameworks (including ROS, IIO, FlatBuffers, and Protocol Buffers), and manipulate tensor data streams in GStreamer pipelines easily and execute such pipelines efficiently |
| gstreamer capsfilter (0) | 2025.08.21 |
|---|---|
| gstreamer parse_launch (0) | 2024.01.11 |
| gst-device-monitor-1.0 (0) | 2023.12.06 |
| gstremaer videobox + videomixer (0) | 2023.04.10 |
| gst-inspector.c (0) | 2023.04.06 |
v4l2src 관련해서 기존에 웹캠에서 지원하는 모드들 찾는다고 고생했는데 간단한 유틸리티를 알게 됨 -_-
| $ man gst-device-monitor-1.0 SYNOPSIS gst-device-monitor-1.0 [DEVICE_CLASSES[:FILTER_CAPS]] [DEVICE_CLASSES[:FILTER_CAPS]] |
| $ gst-device-monitor-1.0 Video/Source Probing devices... Device found: name : 720p HD Camera class : Video/Source caps : image/jpeg, width=1280, height=720, framerate=30/1 image/jpeg, width=640, height=480, framerate=30/1 image/jpeg, width=640, height=360, framerate=30/1 image/jpeg, width=352, height=288, framerate=30/1 image/jpeg, width=320, height=240, framerate=30/1 image/jpeg, width=160, height=120, framerate=30/1 video/x-raw, format=YUY2, width=1280, height=720, framerate=10/1 video/x-raw, format=YUY2, width=640, height=480, framerate=30/1 video/x-raw, format=YUY2, width=640, height=360, framerate=30/1 video/x-raw, format=YUY2, width=352, height=288, framerate=30/1 video/x-raw, format=YUY2, width=320, height=240, framerate=30/1 video/x-raw, format=YUY2, width=160, height=120, framerate=30/1 properties: object.path = v4l2:/dev/video0 device.api = v4l2 media.class = Video/Source device.product.id = 308 device.vendor.id = 11134 api.v4l2.path = /dev/video0 api.v4l2.cap.driver = uvcvideo api.v4l2.cap.card = "720p\ HD\ Camera:\ 720p\ HD\ Camera" api.v4l2.cap.bus_info = usb-0000:00:14.0-6 api.v4l2.cap.version = 6.2.16 api.v4l2.cap.capabilities = 84a00001 api.v4l2.cap.device-caps = 04200001 device.id = 33 node.name = v4l2_input.pci-0000_00_14.0-usb-0_6_1.0 node.description = "720p\ HD\ Camera" factory.name = api.v4l2.source node.pause-on-idle = false factory.id = 10 client.id = 32 clock.quantum-limit = 8192 media.role = Camera node.driver = true object.id = 35 object.serial = 35 gst-launch-1.0 pipewiresrc path=35 ! ... |
| gstreamer parse_launch (0) | 2024.01.11 |
|---|---|
| nnstreamer (0) | 2023.12.20 |
| gstremaer videobox + videomixer (0) | 2023.04.10 |
| gst-inspector.c (0) | 2023.04.06 |
| gstreamer videomixer 반쪽 성공 (0) | 2023.03.27 |
esp32 등에서 사용가능한 gui 라이브러리
집에 esp32-cam은 있는데 얘는 핀이 적어서 lcd 달기 힘들거 같은데..
한번 셋트로 구매해봐야하나?

[링크 : https://lvgl.io]
MIT 라이센스라 마음대로 사용이 가능하다고
FreeLVGL is distributed under the MIT license which allows users to freely use, modify, and distribute the software without imposing complicated restrictions or limitations.It provides flexibility for developers and businesses to incorporate the software into their projects, even for commercial purposes, while maintaining attribution to the original authors. |
[링크 : https://lvgl.io/features]
|
| lvgl pro + figma vs square line studio (0) | 2026.01.28 |
|---|---|
| freertos on esp32 lvgl 예제 분석 (0) | 2026.01.26 |
| lvgl pro on win10 실패 (0) | 2026.01.22 |
| lvgl pro, square line studio (0) | 2026.01.09 |
| esp32 lvgl (0) | 2025.11.15 |
minicom으로 통신을 하는데(시리얼)
창을 넓혀도 top 등을 실행할때 창의 폭이 넓어지지 않을때
아래의 명령을 넣어주면 폭이 조절된다.
| $ stty columns 150 |
[링크 : https://acet.pe.kr/17]
posix 표준은 아니지만 columns N 하면 된다.
| # stty --help Usage: stty [-F DEVICE | --file=DEVICE] [SETTING]... or: stty [-F DEVICE | --file=DEVICE] [-a|--all] or: stty [-F DEVICE | --file=DEVICE] [-g|--save] Print or change terminal characteristics. Mandatory arguments to long options are mandatory for short options too. -a, --all print all current settings in human-readable form -g, --save print all current settings in a stty-readable form -F, --file=DEVICE open and use the specified DEVICE instead of stdin --help 이 도움말을 표시하고 끝냅니다 --version 버전 정보를 출력하고 끝냅니다 Optional - before SETTING indicates negation. An * marks non-POSIX settings. The underlying system defines which settings are available. Special characters: * discard CHAR CHAR will toggle discarding of output eof CHAR CHAR will send an end of file (terminate the input) eol CHAR CHAR will end the line * eol2 CHAR alternate CHAR for ending the line erase CHAR CHAR will erase the last character typed intr CHAR CHAR will send an interrupt signal kill CHAR CHAR will erase the current line * lnext CHAR CHAR will enter the next character quoted quit CHAR CHAR will send a quit signal * rprnt CHAR CHAR will redraw the current line start CHAR CHAR will restart the output after stopping it stop CHAR CHAR will stop the output susp CHAR CHAR will send a terminal stop signal * swtch CHAR CHAR will switch to a different shell layer * werase CHAR CHAR will erase the last word typed Special settings: N set the input and output speeds to N bauds * cols N tell the kernel that the terminal has N columns * columns N same as cols N * [-]drain wait for transmission before applying settings (on by default) ispeed N set the input speed to N * line N use line discipline N min N with -icanon, set N characters minimum for a completed read ospeed N set the output speed to N * rows N tell the kernel that the terminal has N rows * size print the number of rows and columns according to the kernel speed print the terminal speed time N with -icanon, set read timeout of N tenths of a second |
| minicom color (0) | 2024.11.06 |
|---|---|
| minicom lf에 cr 붙이기 (0) | 2023.01.05 |
| minicom 16진수로 보기 (0) | 2022.08.25 |
| minicom 로그 저장하기 (0) | 2021.09.16 |
| minicom timestamp (0) | 2021.09.16 |
2.8에서는 삭제되어 2.79 까지만 남아있는 듯. 현재 3.x대로 이행되었으니 흔적도 없이 사라졌을 것 같다.
| Following its removal from the official version of Blender, an unofficial fork of the game engine source code was created, named UPBGE.[4] This was done with the aim of maintaining and modernizing the engine. Since then, UPBGE has been updated with support for Blender's new realtime renderer, Eevee, and runs on top of Blender 3.0 source code.[5] |
[링크 : https://en.wikipedia.org/wiki/Blender_Game_Engine]
[링크 : https://upbge.org/#/]
망할(!) GPL 때문에 없어질 수 밖에 없었을 듯.
그래서 unity가 신명나게 욕 먹고 대안으로 떠오르는게 BGE가 아니라 godot 게임엔진이 뜨는 듯
| 내장된 'Game engine save as runtime' 애드온을 사용하면 Windows용으로 빌드할 수 있다. 애드온으로 실행 파일을 만든 때에 GPL 라이선스에 따라 소스 코드를 무조건 까야 한다. BGE 라이센스 참고(영문). 요약하자면, 소프트웨어 및 소스 코드는 GNU GPL에 결합되어 있지만, 블렌더 파일(모델, 텍스처, 소리)은 그렇지 않다. 게임을 구성하는 파이썬 스크립트의 경우 개발자의 지적 재산은 맞지만 내부 에드온으로 빌드하면 GPL 소스 코드와 섞이기 때문에 그 권리가 모호해지는 문제가 있다. 즉, 빌드된 게임 프로그램이 GPL이 되어 버린다. |
[링크 : https://namu.wiki/w/BGE]
| The Godot Engine is a free, all-in-one, cross-platform game engine that makes it easy for you to create 2D and 3D games. |
[링크 : https://godotengine.org/]
| blender cad (0) | 2024.05.07 |
|---|---|
| blender render node (0) | 2024.03.20 |
| blender on macos (0) | 2022.05.24 |
| big bunny blender project file (0) | 2022.05.22 |
| 블렌더 강좌? (유료) (0) | 2021.08.07 |
한동안 신경끄고 살았는데
hwpx라는 사악한(!) 확장자도 추가되었다는걸 새삼 알게됨 -_-
[링크 : https://extensions.libreoffice.org/en/extensions/show/27504]
+
23.10.24
다운받아서 설치하니 java 11 없다고 배짼다. 깔아야 하나 -_-

openjsdk-11 으로는 안되니 패스~
| $ sudo apt-get install openjdk-11-jdk |
[링크 : https://codechacha.com/ko/ubuntu-install-open-jdk11/]
libreoffice-java-common 이라는 패키지로 별도의 java가 제공된다고.. 뭥미
| $ sudo apt install libreoffice-java-common |
[링크 : https://forums.zotero.org/discussion/97427/issue-with-libre-office-plugin-on-ubuntu-22-04]
| libreoffice calc 빈 열 삭제하기 (0) | 2024.08.02 |
|---|---|
| libreoffice에서 italic으로 자동 변환 막기 (0) | 2024.02.13 |
| libreoffice calc 중복제거 (0) | 2023.08.05 |
| libreoffice OpenCL 적용하기 (0) | 2023.08.04 |
| 리브레 오피스 Calc 중복제거 (0) | 2020.11.05 |
실험적으로 나온 결과를 N으로 나눠줘서 쓰고 있었는데
퍼시발의 규칙에 의해 개별 주파수의 진폭은 N개의 샘플에 의해 영향을 받게되고
진폭을 N으로 나누어 평준화해야 한다고 하는데 솔찍히 확 와닫는 소리는 아니다 -_ㅠ

[링크 : https://stackoverflow.com/questions/63211851/why-divide-the-output-of-numpy-fft-by-n]
[링크 : https://stackoverflow.com/questions/4855958/normalising-fft-data-fftw]
+
2024.08.01
[링크 : https://dsp.stackexchange.com/questions/75749/how-to-use-pffft-fft-library]
| pffft fft / ifft 테스트 (0) | 2024.08.01 |
|---|---|
| FFT RBW (0) | 2023.09.19 |
| tek.com fft 관련 문서 (0) | 2023.07.19 |
| sfft (0) | 2023.07.12 |
| fft window type과 진폭 보정계수 (0) | 2023.07.04 |
라고 하는게 맞는진 모르겠지만
500개의 데이터를 1초에 샘플링 할 경우
500개의 데이터를 넣냐
100개의 데이터를 넣냐에 따라 나오는결과가 달라지는데 이걸 어떻게 해석하냐에 대한 내용
input data
|
for ( i = 0; i < n; i++ )
{
in[i] = ( double ) sin ( 2.0f * PI * (double)(i * 10) / n);
}
|
500 에 10 주기 니까 500SPS일 경우 10Hz에 peak가 떠야 한다.

500개를 다 넣으면 10Hz 에서 peak가 뜬다.
같은 애를 x축 크기만 조정해서 출력하면 아래처럼 보인다. (오른쪽은 왼쪽의 그래프를 X축에 대해서 5배 확대한 것)
![]() |
![]() |
100개만 넣어서 돌리면, 값은 50개만 나오고(100/2+1) peak는 2에서 나온다.
같은 애를 x축 크기만 조정해서 출력하면 아래처럼 보인다. (왼쪽은 오른쪽의 그래프를 X축에 대해서 1/5배로 축소한 것)
![]() |
![]() |
상관관계로 보면
샘플링 속도는 동일하고
데이터 갯수가 1/N 만큼 줄어들면
원래 주파수로 환원하기 위해서는 *N을 해야 한다.
위의 경우 1/5 였으니까
주파수는 *5를 해야 정상적으로 나오고
다르게 해석하면 5Hz 의 RBW로 분석 주파수 해상도가 낮아졌다 라고 표현하면 될 듯.
| pffft fft / ifft 테스트 (0) | 2024.08.01 |
|---|---|
| fft 결과에 N(입력 샘플 갯수)로 나누는 이유 (0) | 2023.09.21 |
| tek.com fft 관련 문서 (0) | 2023.07.19 |
| sfft (0) | 2023.07.12 |
| fft window type과 진폭 보정계수 (0) | 2023.07.04 |