검정색 배경에 흰색 텍스트 가져 오기

테크 파이브

일련의 이미지에서 텍스트를 식별하고 싶습니다. 흰색과 검은 색 텍스트가 모두있는 이미지가 있습니다.

여기에 이미지 설명 입력

otsu thresholding을 사용하여 이미지를 이진화했습니다.

여기에 이미지 설명 입력

윤곽선을 식별하고 텍스트가 아닌 영역을 제거한 후 필요한 텍스트 영역을 식별했습니다.

여기에 이미지 설명 입력

모든 텍스트가 흰색으로 필요합니다. 그러나 나는 그것을하는 방법을 모른다. 비트 연산자를 사용하려고 생각했지만 방법을 찾을 수 없습니다. 누군가 나를 도와 줄 수 있습니까?

예상 출력 :

여기에 이미지 설명 입력

import cv2
import numpy as np


def process(img):
 # read image
 img_no = str(img)
 rgb = cv2.imread(img_no + '.jpg')
 # cv2.imshow('original', rgb)

 # convert image to grayscale
 gray = cv2.cvtColor(rgb, cv2.COLOR_BGR2GRAY)

 _, bw_copy = cv2.threshold(gray, 0.0, 255.0, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

 # bilateral filter
 blur = cv2.bilateralFilter(gray, 5, 75, 75)
 # cv2.imshow('blur', blur)

 # morphological gradient calculation
 kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
 grad = cv2.morphologyEx(blur, cv2.MORPH_GRADIENT, kernel)
 # cv2.imshow('gradient', grad)

 # binarization
 _, bw = cv2.threshold(grad, 0.0, 255.0, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
 # cv2.imshow('otsu', bw)

 # closing
 kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 1))
 closed = cv2.morphologyEx(bw, cv2.MORPH_CLOSE, kernel)
 # cv2.imshow('closed', closed)

 # finding contours
 contours, hierarchy = cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

 mask = np.zeros(closed.shape, dtype=np.uint8)
 mask1 = np.zeros(bw_copy.shape, dtype=np.uint8)

 for idx in range(len(contours)):
    x, y, w, h = cv2.boundingRect(contours[idx])
    mask[y:y + h, x:x + w] = 0
    area = cv2.contourArea(contours[idx])
    aspect_ratio = float(w) / h
    cv2.drawContours(mask, contours, idx, (255, 255, 255), -1)
    r = float(cv2.countNonZero(mask[y:y + h, x:x + w])) / (w * h)

    # identify region of interest
    if r > 0.34 and 0.52 < aspect_ratio < 13 and area > 145.0:
        cv2.drawContours(mask1, [contours[idx]], -1, (255, 255, 255), -1)

 result = cv2.bitwise_and(bw_copy, mask1)
 cv2.imshow('result', result)

 print(img_no + " Done")
 cv2.waitKey()

새로운 이미지

수락 된 답변은이 사진에서 작동하지 않습니다.

여기에 이미지 설명 입력

yapws87

언뜻보기에 이것은 간단한 질문처럼 보이지만 해결하기가 상당히 까다 롭습니다. 그러나 문제를 해결하는 데 필요한 모든 요소가 이미 있으며 알고리즘을 약간만 조정하면됩니다.

요점은 다음과 같습니다.

필요한 것은 임계 이미지 (bw_copy)의 반전 된 이미지 (wb_copy)입니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

당신은 마스크를 만드는 훌륭한 일을했습니다.

여기에 이미지 설명 입력

위의 마스크를 사용하여 bw_copy 및 wb_copy 모두에서 bitwise_and 연산을 실행합니다. 아래와 같은 결과를 얻을 수 있습니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

보시다시피 귀하의 대답은 두 이미지 모두에서 벗어납니다. 모든 글꼴 blob에 대해 두 이미지에서 0이 아닌 픽셀을 계산하고 더 높은 수의 픽셀을 선택하기 만하면됩니다. 그렇게하면 원하는 결과를 얻을 수 있습니다.

여기에 이미지 설명 입력

코드를 수정 한 내용은 다음과 같습니다.

  # finding contours
    _,contours,_ = cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

    mask = np.zeros(closed.shape, dtype=np.uint8)
    mask1 = np.zeros(bw_copy.shape, dtype=np.uint8)
    wb_copy = cv2.bitwise_not(bw_copy)
    new_bw = np.zeros(bw_copy.shape, dtype=np.uint8)

    for idx in range(len(contours)):
        x, y, w, h = cv2.boundingRect(contours[idx])
        mask[y:y + h, x:x + w] = 0
        area = cv2.contourArea(contours[idx])
        aspect_ratio = float(w) / h
        cv2.drawContours(mask, contours, idx, (255, 255, 255), -1)
        r = float(cv2.countNonZero(mask[y:y + h, x:x + w])) / (w * h)


        # identify region of interest
        if r > 0.34 and 0.52 < aspect_ratio < 13 and area > 145.0:

            cv2.drawContours(mask1, [contours[idx]], -1, (255, 255, 255), -1)

            bw_temp = cv2.bitwise_and(mask1[y:y + h, x:x + w],bw_copy[y:y + h, x:x + w])
            wb_temp = cv2.bitwise_and(mask1[y:y + h, x:x + w],wb_copy[y:y + h, x:x + w])

            bw_count = cv2.countNonZero(bw_temp)
            wb_count = cv2.countNonZero(wb_temp)

            if bw_count > wb_count:
                new_bw[y:y + h, x:x + w]=np.copy(bw_copy[y:y + h, x:x + w])
            else:
                new_bw[y:y + h, x:x + w]=np.copy(wb_copy[y:y + h, x:x + w])

    cv2.imshow('new_bw', new_bw)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

검정색 CSS 배경으로 텍스트를 흰색으로 만들기

분류에서Dev

알림 텍스트 색상 및 배경 가져 오기

분류에서Dev

주어진 검색 입력에서 모든 검색 텍스트 가져 오기

분류에서Dev

iOS 희미한 흰색 배경에 강한 흰색 텍스트?

분류에서Dev

흰색 배경 문제에 흰색 텍스트

분류에서Dev

Material-UI : Windows 브라우저에서 어두운 테마를 사용할 때 기본 선택은 흰색 배경에 흰색 텍스트가 있습니다.

분류에서Dev

웹 페이지 크기를 조정하면 웹 사이트에 흰색 배경 오버플로가 추가됨

분류에서Dev

Delphi DX Seattle FMX TListView HeaderItem-흰색이 아닌 배경에 흰색 그림자 텍스트 숨기기

분류에서Dev

버튼으로 Tkinter 항목 검색 상자에서 텍스트 가져 오기

분류에서Dev

배경 이미지가 흰색으로 설정되지 않음 | 텍스트에 스타일 추가

분류에서Dev

특정 표 셀의 내용 가져 오기 및 텍스트 색상 변경

분류에서Dev

vim-pandoc-syntax 기울임 꼴 텍스트가 흰색 배경으로 표시됨

분류에서Dev

자바 파일 : 텍스트 파일에서 특정 색인 가져 오기

분류에서Dev

열 순환, 텍스트 검색, X 값 가져 오기

분류에서Dev

Bash-굵은 검정색 텍스트가있는 자주색 배경에 대한 ANSI 색상 코드

분류에서Dev

스피너 선택 메뉴 텍스트가 최신 장치에서 흰색 배경에 보이지 않거나 흰색 임

분류에서Dev

Ubuntu Software Center의 흰색 BG에 Ubuntu Gnome 15.04 흰색 텍스트

분류에서Dev

흰색이 아닌 배경에서 텍스트 색상을 흰색으로 변경

분류에서Dev

파일에서 텍스트를 검색하고 Batch를 사용하여 전체 줄 가져 오기

분류에서Dev

ajax 라이브 검색을 위해 jquery에서 p 태그 텍스트 가져 오기

분류에서Dev

밝기에 따라 흰색 및 검은 색 픽셀 설정

분류에서Dev

Dell Inspiron 1501에서 업그레이드 한 후 Ubuntu 12.04.3 부팅을 흰색 텍스트의 오류로 가득 찬 검은 색 화면으로 수정하는 방법

분류에서Dev

간단한 Html dom 파서를 사용하여 특정 검색 텍스트로 링크 가져 오기

분류에서Dev

흰색 스크린 샷 만 가져 오는 중

분류에서Dev

텍스트 다음에 특정 텍스트 가져 오기

분류에서Dev

검색 창의 Android 흰색 텍스트

분류에서Dev

Crystal 보고서에 이미지를 표시 할 때 배경 텍스트가 검정색 인 경우

분류에서Dev

Twython의 트윗 검색에서 화면 이름 가져 오기

분류에서Dev

SQL Server 전체 텍스트 검색-총 필드 값 가져 오기

Related 관련 기사

  1. 1

    검정색 CSS 배경으로 텍스트를 흰색으로 만들기

  2. 2

    알림 텍스트 색상 및 배경 가져 오기

  3. 3

    주어진 검색 입력에서 모든 검색 텍스트 가져 오기

  4. 4

    iOS 희미한 흰색 배경에 강한 흰색 텍스트?

  5. 5

    흰색 배경 문제에 흰색 텍스트

  6. 6

    Material-UI : Windows 브라우저에서 어두운 테마를 사용할 때 기본 선택은 흰색 배경에 흰색 텍스트가 있습니다.

  7. 7

    웹 페이지 크기를 조정하면 웹 사이트에 흰색 배경 오버플로가 추가됨

  8. 8

    Delphi DX Seattle FMX TListView HeaderItem-흰색이 아닌 배경에 흰색 그림자 텍스트 숨기기

  9. 9

    버튼으로 Tkinter 항목 검색 상자에서 텍스트 가져 오기

  10. 10

    배경 이미지가 흰색으로 설정되지 않음 | 텍스트에 스타일 추가

  11. 11

    특정 표 셀의 내용 가져 오기 및 텍스트 색상 변경

  12. 12

    vim-pandoc-syntax 기울임 꼴 텍스트가 흰색 배경으로 표시됨

  13. 13

    자바 파일 : 텍스트 파일에서 특정 색인 가져 오기

  14. 14

    열 순환, 텍스트 검색, X 값 가져 오기

  15. 15

    Bash-굵은 검정색 텍스트가있는 자주색 배경에 대한 ANSI 색상 코드

  16. 16

    스피너 선택 메뉴 텍스트가 최신 장치에서 흰색 배경에 보이지 않거나 흰색 임

  17. 17

    Ubuntu Software Center의 흰색 BG에 Ubuntu Gnome 15.04 흰색 텍스트

  18. 18

    흰색이 아닌 배경에서 텍스트 색상을 흰색으로 변경

  19. 19

    파일에서 텍스트를 검색하고 Batch를 사용하여 전체 줄 가져 오기

  20. 20

    ajax 라이브 검색을 위해 jquery에서 p 태그 텍스트 가져 오기

  21. 21

    밝기에 따라 흰색 및 검은 색 픽셀 설정

  22. 22

    Dell Inspiron 1501에서 업그레이드 한 후 Ubuntu 12.04.3 부팅을 흰색 텍스트의 오류로 가득 찬 검은 색 화면으로 수정하는 방법

  23. 23

    간단한 Html dom 파서를 사용하여 특정 검색 텍스트로 링크 가져 오기

  24. 24

    흰색 스크린 샷 만 가져 오는 중

  25. 25

    텍스트 다음에 특정 텍스트 가져 오기

  26. 26

    검색 창의 Android 흰색 텍스트

  27. 27

    Crystal 보고서에 이미지를 표시 할 때 배경 텍스트가 검정색 인 경우

  28. 28

    Twython의 트윗 검색에서 화면 이름 가져 오기

  29. 29

    SQL Server 전체 텍스트 검색-총 필드 값 가져 오기

뜨겁다태그

보관