image process of chessboard

asked 2018-04-25 03:00:55 -0600

crazymumu gravatar image

updated 2018-04-25 07:49:46 -0600

I am use C-arm X-ray machine. Right now, there are still distortion on image (see edge), considering calibrate it as pinhole camera model. So I use common opencv method to calibrate it(corner extraction...) to get Intrinsic Parameters and so on. The problem I want to figure it here: I know the "dark image" is inherent character of X-ray image. But pixel value differentiation between black and white grid is only about 10, and the edge area are too black. It will bad effect the extraction performance

image description

In order to get good concern extraction performance, I want process it to look like original format. The original format attended below:

image description

Any suggestions will be appreciated!!

edit retag flag offensive close merge delete

Comments

You will have to binarize your image. Doing that should be quite straightforward by applying binary OTSU thresholding on the inner part of the image. Are you allowd to let the user point where the paper is?

StevenPuttemans gravatar imageStevenPuttemans ( 2018-04-25 07:51:50 -0600 )edit

Also, since it is xray, instead of using a printed BW pattern, couldn't you make something that has like a abosorption/no-absorption property to enhance the contrast?

StevenPuttemans gravatar imageStevenPuttemans ( 2018-04-25 07:54:15 -0600 )edit

hi @StevenPuttemans, thanks for your reply. I've tried OTSU thresholding, but performance not satisfied。 Because the image I got no bimodal, the white and black block value differentiation is about 20. I am use PCB chessboard, not the regular board. Second image I attached is just structure format of chess block. By the way, what's user point means on your first reply ?

crazymumu gravatar imagecrazymumu ( 2018-04-27 01:27:39 -0600 )edit

If you allow the user to manually click the outer boundaries of the chessboard, then you can first do a contrast enhancement there, for example by histogram equalization or CLAHE and perform a binary OTSU thresholding on top of that. You could also select all pixels and run it through a 2NN classifier (kNN algorithm) although I am quit convinced that would not create clear patterns, but you will only find out if you try to do so!

StevenPuttemans gravatar imageStevenPuttemans ( 2018-04-27 02:14:29 -0600 )edit
1

because it's x-ray image, the black block is copper layer, thicker copper layer will darker. but PCB tech will not allow thicker copper layer. the other dark area because x-ray character. And I tried matlab calibration code, I can select corner, but performance not ok. I will try what you said. thanks

crazymumu gravatar imagecrazymumu ( 2018-04-27 02:39:33 -0600 )edit