[펄 (Perl)] HTML Entity(문자 참조)를 일반 문자로 변환하기


HTML 파일 안에는 HTML Entity라고 불리는(우리말로는 '문자 참조') 구조가 있습니다. 예를 들어 &이라는 문자는 HTML 파일 안에서 &로 씁니다. HTML 파일 안에 &라고 적혀 있으면 웹브라우저가 &라고 표시해주는 것입니다.


문제는 그러한 HTML 파일을 펄에서 바로 읽어버리면 &로 표시되지 않고 &라고 있는 그대로 표시되어버린다는 데에 있습니다. 이를 해결하려면 다음과 같이 하면 됩니다.


#!/usr/bin/perl

use 5.012;

use strict;

use warnings;

use HTML::Entities;


my $test = '&';

say $test; # &라고 출력됩니다.

say decode_entities($test); # &라고 변환되어 출력됩니다.



[OpenCV] 컬러 사진을 흑백으로 변환하기 (cvtColor, 파이썬)


컬러 사진을 흑백으로 변환하려면 원래는 Y = 0.299*R + 0.587*G + 0.114*B 라는 식을 사용해서 픽셀 하나하나마다 계산을 해야 합니다. 하지만 파이썬에서 OpenCV를 사용하면 흑백 변환을 쉽게 할 수 있습니다.


import cv2

import matplotlib.pyplot as plt

그림BGR = cv2.imread("그림파일.jpg")

그림RGB = cv2.cvtColor(그림BGR, cv2.COLOR_BGR2RGB)

그림흑백 = cv2.cvtColor(그림BGR, cv2.COLOR_BGR2GRAY)


# 이 아래 부분은 그림을 화면에 출력하기 위한 부분으로, OpenCV 알고리즘과는 상관이 없습니다.

plt.subplot(1, 2, 1) # 1행 2열에서 1번째 열

plt.imshow(그림RGB)

plt.xticks([]) # x축 좌표 숨김

plt.yticks([]) # y축 좌표 숨김


plt.subplot(1, 2, 2) # 1행 2열에서 2번째 열

plt.imshow(그림흑백, cmap='gray')

plt.xticks([]) # x축 좌표 숨김

plt.yticks([]) # y축 좌표 숨김


plt.show()


이렇게 하면 그림이 화면에 잘 표시됩니다. cmap='gray' 부분을 써 주어야 matplotlib이 흑백 사진을 제대로 출력합니다.



[OpenCV] BGR 사진을 RGB 사진으로 변환하기 (cvtColor, 파이썬)


파이썬에서 OpenCV를 사용해서 사진을 matplotlib 으로 화면에 출력하는 방법입니다. 컬러 사진을 OpenCV에서는 BGR 순서로 저장하는데 matplotlib에서는 RGB 순서로 저장합니다. 따라서 BGR을 RGB로 바꾸어 주어야만 사진이 제대로 표시됩니다.


import cv2

import matplotlib.pyplot as plt

그림BGR = cv2.imread("그림파일.jpg")

그림RGB = cv2.cvtColor(그림BGR, cv2.COLOR_BGR2RGB)


# 이 아래 부분은 그림을 화면에 출력하기 위한 부분으로, OpenCV 알고리즘과는 상관이 없습니다.

plt.imshow(그림RGB, interpolation='bicubic')

plt.show()


이렇게 하면 그림이 화면에 잘 표시됩니다. `interpolation='bicubic'` 부분은 그림을 확대하거나 축소할 때 화면에 자연스럽게 표현되도록 하는 옵션입니다. 실행 예제 화면은 다음과 같습니다.



+ Recent posts