2011-05-12 3 views
4

OpenCV에서 이미지 픽셀의 빛과 색상으로 놀고있었습니다. 나는 빨간 스케일 효과를 보았습니다. OpenCV에서이를 구현하는 방법은 무엇입니까? 나는 픽셀 RGB 값을 조작하는 몇 가지 방법을 시도했다. 하지만 나는 HSV 색상 공간을 사용해야 할 수도 있다는 느낌이 들었습니다 ... pls 도움.이미지를 Redscale로 변환하는 방법?

+0

디지털 이미지의 경우이 기술에 대한 정보를 찾지 못했습니다 (지금까지). – karlphillip

+0

redscale 효과가 매우 흥미롭게 보입니다. 황색의 홍수는 일부 이미지에서 놀라운 것처럼 보입니다. 하지만 구현하는 방법에 대한 아이디어를 얻지 못하고 .. : ( – Sayak

답변

1

이미지를 redscale effect과 비슷한 모드로 변환하는 자바 스크립트를 만들 수있었습니다. 파일에 HTML 아래에 저장하고 HTML5 캔버스 요소를 지원하는 브라우저에서 엽니 다 (예 : 파이어 폭스/크롬 ... 등) 포함 된 이미지 :

편집 : 나는 스케일 효과 코드를 단순화하고 모든 사진 노란색 홍수를 만든
, - 이제 효과가 '실제'효과에 더 가깝게 보인다.

<html> 
<body> 

<script type='text/javascript'> 
function AppyRedscale(img) { 
    width = 200; 
    height = 150; 
    canvas = document.getElementById("canvas"); 
    cnt = canvas.getContext("2d"); 
    cnt.drawImage(img,0,0); 
    imageData = cnt.getImageData(0,0,width, height); 
    imageDataNew = cnt.createImageData(width, height); 

    for (x = 0; x < width; x++) { 
    for (y = 0; y < height; y++) { 
     rgb = getPixel(imageData,x,y); 
     k = rgb[2]/255; 
     rgb[0] = Mix(k,rgb[0],255); 
     rgb[1] = Mix((1-k)*(1-k),rgb[1],0); 
     rgb[2] = Mix(k,rgb[2],0); 
     setPixel(imageDataNew, x, y, rgb, 0xff); 
    } 
    } 

    cnt.putImageData(imageDataNew, 0, 0); 

}; 

function Mix(k,x,y) { 
    return (1-k)*x + k*y; 
}; 

function setPixel(imageData, x, y, rgb, a) { 
    index = (x + y * imageData.width) * 4; 
    imageData.data[index+0] = rgb[0]; 
    imageData.data[index+1] = rgb[1]; 
    imageData.data[index+2] = rgb[2]; 
    imageData.data[index+3] = a; 
}; 

function getPixel(imageData, x, y) { 
    index = (x + y * imageData.width) * 4; 
    return [imageData.data[index+0], 
      imageData.data[index+1], 
      imageData.data[index+2] 
      ]; 
}; 
</script> 

<canvas id="canvas" width="400" height="300" 
      style="position: absolute; left: 8; top: 170; z-index: 1;"><br /> 
    Sorry, canvas not supported!<br /> 
</canvas> 

<img id="img" src="data:image/jpeg;base64,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%3D%3D" width="200" height="150" onload="AppyRedscale(this)"/> 

</body> 
</html> 

이 HTML은 (제 1 화상 일본어 - redscale'd) 등의 출력을 생성 할 것이다 : enter image description here

HTH를!

+1

흥미 롭습니다.당신의 노력에 +1. – karlphillip

+0

정말 대단합니다 ... 노력에 찬사 ... – Sayak

-1

나는 매우 간단한 방법으로이 코드를 opencv로 변환했습니다. opencv는 색상을 bgr로 간주하고 rgb가 아니라고 생각하기 때문에 약간의 변경을가했습니다. 코드가 제대로 작동합니다 ... 실수가 있으면 편집하십시오.

int main(int argc, char** argv) 
{ 
    IplImage* img = cvLoadImage("D:/test.jpg"); 
    cvShowImage("Input", img); 
    int x,y; 
    double k; 
    CvScalar s; 

    for (x = 0; x < img->width; x++) 
    { 
     for(y = 0; y < img->height; y++) 
     { 

      s = cvGet2D(img, y, x); 
      k = s.val[0]/255; 

      s.val[0] = (1-k) * (1-k) * s.val[0]; 
      s.val[1] = k * s.val[1]; 
      s.val[2] = (1-k) * s.val[2] + k * 255; 

      cvSet2D(img, y, x, s); 

     } 
    } 
    cvShowImage("Output", img); 
    cvWaitKey(0); 

    cvReleaseImage(&img); 
    return 0; 
} 
+0

-1. 왜 ? 네가 네 자신의 대답을 받아 들였기 때문에 나는 정말로 ... 네가 양심이 없다. –

+0

당신이 나를 완전히 오해 한 것에 대해 유감입니다. 물론 나는 당신에게 큰 대답을 주셨습니다. 하지만 OpenCV에서이 코드를 구현했기 때문에 OpenCV에서 코드를 변환하려고 시도했는데 잘못된 코드가 있으면 여기에 게시했습니다. "Add Comment"에서 코드를 게시 할 수 없었기 때문에 답변으로 게시했습니다 ... 오해하지 마십시오. 나는 아픈 의도가 없었다. 너의 대답은 나를 대단히 도왔다. – Sayak

+0

아니요. 내 대답에 대해 적립하지 않았습니다. 내 대답에 신용을 쓰고 싶다면 그것을 해결 된 것으로 표시하십시오. 정말 귀하의 대답은 표절 (내 복사 알고리즘) 때문입니다. –

2

처리가 쉽습니다.

void redscale() { 

    loadPixels();  

    for (int i = 0; i < pixels.length; i++) { 
    int r = (int) red(pixels[i]); 
    int g = (int) red(pixels[i]); 
    int b = (int) red(pixels[i]);  
    int average= (r+g+b)/3; 

    pixels[i]= color (255, average, 0); 

    updatePixels() 

} 
} 
0

답변에 대한 신용 점수는 0x69입니다. 나는 그가 실제로 OpenCV를 언급하는 질문에 대답하지 않았다고 말하고 싶다.

Anyhoot ... StackOverFlow에 대한 나의 첫 번째 시도. 그리고 예, 나는 그 질문이 '늙었다'는 것을 알고 있습니다. 그러나 나는 주제에 대해 밝힐 수 있음을 발견했습니다. 내 대답에 포함 된 것은 채널을 분리하는 방법에 대한 접근 방식이며 서로를 뺍니다. (알고리즘은 그러나 차이가 없습니다 OpenCV의 2.1 정상적인 C로 코딩되어 있기 때문에 버전이 매우 중요합니다.)

내 프로젝트 그룹과 나는 프로젝트의 중간 C를 포함 ++과 OpenCV의 2.3 에

우리 우리가 어떻게했는지 분리 녹색이었다 수행 한 후 빨간색과 파란색 채널을 빼기 위해 필요한이 있었다 : 나는 당신이이었다 사용할 수 있습니다 생각

void IsolateGreen(Mat mIn, Mat& mOut) 

{ 

Mat inImg (mIn.rows, mIn.cols, CV_8UC3, Scalar(1,2,3)); 
inImg.data = mIn.data; 
Mat channelRed (inImg.rows, inImg.cols, CV_8UC1); 
Mat channelGreen (inImg.rows, inImg.cols, CV_8UC1); 
Mat channelBlue (inImg.rows, inImg.cols, CV_8UC1); 
Mat outImg[] = {channelRed, channelGreen, channelBlue}; 

int fromTo[] = { 0,2, 1,1, 2,0}; 
mixChannels(&inImg, 1, outImg, 3, fromTo, 3); 

mOut = (channelGreen) - (channelRed + channelBlue); 

threshold(mOut, mOut, 10, 255, THRESH_BINARY); 

erode(mOut, mOut, Mat(), Point (-1,-1), 1); 
dilate(mOut, mOut, Mat(), Point(-1,-1), 3); 

} 

즉, 그것의이 부분

void IsolateGreen(Mat mIn, Mat& mOut) 
{ 
    Mat inImg (mIn.rows, mIn.cols, CV_8UC3, Scalar(1,2,3)); 
inImg.data = mIn.data; 
Mat channelRed (inImg.rows, inImg.cols, CV_8UC1); 
Mat channelGreen (inImg.rows, inImg.cols, CV_8UC1); 
Mat channelBlue (inImg.rows, inImg.cols, CV_8UC1); 
Mat outImg[] = {channelRed, channelGreen, channelBlue}; 

int fromTo[] = { 0,2, 1,1, 2,0}; 
mixChannels(&inImg, 1, outImg, 3, fromTo, 3); 

mOut = channelGreen; 
} 

여기에서 중요한 부분 (3210)은 mixChannels 기능입니다 더 http://opencv.itseez.com/modules/core/doc/operations_on_arrays.html?highlight=mixchannels#mixchannels

에 이해하기가 약간의 시간이 걸렸습니다 읽어 보시기 바랍니다. 결과는 개별 채널을 나타내는 하나 이상의 회색 음영 이미지를 제공합니다. (RGB 사진의 단일 채널과 혼합하여 원하는 채널로 전환 할 수 있습니다. 빨간색으로 볼 수 있기를 바랍니다.) 3)

관련 문제