사진에서 나무의 선화를 추출합시다.

7010 단어 C++OpenCVCannykmeans

개요



이 기사에서는 그림이 아닌 무료 사진에서 선화를 추출하려고했습니다.
솔직히 말하면 잘 작동하지 않지만, 우선 도중 경과라는 것으로 기사로 둡니다.
먼저 소스 코드와 결과를 올려 둡니다.
소스 코드: htps : // 기주 b. 코 m/후지바야시 유야/이마게-토-네-D라우응 g/bぉb/마s테 r/그 r세. cp

원본 이미지 (htp : //가 g. 네 t / 000312 - t ree-ds ぺ /)

선화

선화라고 하기에는 조금 너무 얇지 않아? 라든지, 구름이 사라지고 있어? 라든지 여러가지 미비는 있습니다만, 이번은 나무의 선화에 주목했으므로 조금 많게 봐 주시면 좋겠습니다.

상세



참고로 한 사이트의 기법의 재검토



우선 화상으로부터 선화를 추출하는데 있어서, 이 사이트의 수법을 시험했습니다.
htps //w w. 마 thg et al. xy · entry / cv / 안녕 r
이 사이트에도 있는 것처럼 일러스트와 같은 이미지라면 잘 작동합니다만, 사진이 되면 필요 이상으로 선이 늘어나 버려, 일러스트만큼 잘 되지 않습니다. 이것은 원래의 화상이 화소치의 세세한 변화를 포함하는 것 같은 화상이라면, 차분을 취했을 때에 그 세세한 부분이 선화로서 추출되기 때문이라고 생각됩니다.
시험에 같은 방법을 이번 나무의 이미지로 실시하면 아래와 같이 되었습니다. 잎 부분이 필요 이상으로 선이 많네요.


참고로 한 사이트는 Python이므로 C++로 쓴 것을 아래에 올려 둡니다.
Mat Median1(Mat img) {
    Mat gray, blur, dila, diff, edge;
//メディアンフィルタをかけると画素値の変化が緩やかになるので若干線画の数を調節できる
    medianBlur(img, blur, 3);
    //画像をグレースケール化
    cvtColor(blur, gray, COLOR_BGR2GRAY, 1);
    //黒い箇所を狭める
    dilate(gray, dila, Mat(), Point(-1, -1), 1);
    //差分をとる
    absdiff(gray, dila, diff);
    //白黒反転
    bitwise_not(diff, edge);
    return edge;
}

위의 코드로 메디안 필터의 범위를 넓게 하면 선화가 되는 부분이 대략적으로 되어 가는데, 희미하게 선이 들어가거나 해서 조금 더러운 느낌이 되었습니다. (아래는 범위를 5*5화소로 한 것입니다)


Kmeans 법을 시도했습니다.



거기서 화소치의 변화를 완만하게 하는 것이 아니고, 어느 정도 가까운 값이라면 동일하게 하려고 Kmeans법을 시험해 보았습니다.
C++, OpenCV를 이용한 Kmeans법의 코드는 이 사이트가 매우 참고가 되었습니다.
htps : // 토라-k. 코 m/2019/11/28/애니메

클래스의 수를 6으로 했을 경우의 결과가 아래와 같이 되었습니다.

나뭇잎의 섬세한 느낌은 약간 완화되었습니다만, 보험을 걸고 3*3화소로 메디안 필터를 걸고 나서 선화를 취합시다.

잎의 부분에 관해서는, 잎의 틱틱감 있는 실루엣을 남기면서 첫 선화 보다 적당한 정보량이 된 것이 아닐까요. 다만, 하늘의 부분에 불필요한 선이 늘어났기 때문에 이것을 어떻게 하지 않으면.

그래서 다른 사이트를 참고로 한 선화와 Kmeans법으로 구한 선화를 bitwise_and() 함수로 논리적을 해 보았습니다.

빈 선이 사라졌습니다. (구름도 없지만 ...) 나무의 잎 부분도 엉망 느낌은 조금 뻣뻣해졌지만, 전반적으로 딱딱하지 않은 느낌에 ...
거기서, 시험에 Canny법으로 얻은 엣지와 Kmeans법의 논리적을 실시해 보았습니다.
약간 선명한 것처럼 ...하지 않는 것 같습니다 ...
사진의 완전한 선화는 어렵습니다.
잘 작동하는 방법이 발견되면 그 때도 기사를 씁니다.

마지막으로 소스 코드 (페이지 상단과 동일) 올려 둡니다.
htps : // 기주 b. 코 m/후지바야시 유야/이마게-토-네-D라우응 g/bぉb/마s테 r/그 r세. cp

참고문헌



선화의 추출 방법에 대해서
htps // 그냥 오야마오카. 하테나 bぉg. 코m/엔트리/2017/02/19/172744
htps //w w. 마 thg et al. xy · entry / cv / 안녕 r
htp : // 아 zp2. 사쿠라우 b. 이 m/p 호토/린카쿠/가 x. HTML

기타 프로그램 등
・Kmeans법. . . htps : // 토라-k. 코 m/2019/11/28/애니메
・Canny법. . . htps : // / l hr thm. 조호.んふぉ / 이마 게 p 로세 센 g / 칸 y - 에 d 게 -에서 r /

좋은 웹페이지 즐겨찾기