: Hi,
:
: I want to scan intensity value of pixel for binary image. Here is the code that I build.
:
: byte* p = (byte*)imgData.Scan0.ToPointer();
: int i = 0;
:
: for (int y = 0; y < height; y++)
: {
: for (int x = 0; x < width; x++)
: {
: {
:
: if (*p != 0)// white
: {
: i++;
: }
:
: else
: {
: i = 0;
: }
: }
: ++p;
: }
:
: p += srcOffset;
:
: }
:
: if (i >= 10)
:
: resultScan = "PASS";
:
: else
: resultScan = "FAIL";
:
:
: Here, I want to make it;
: If there are any intensity values of pixel other than zero, and the total of that pixel is more or similar to 10, it will return PASS. Otherwise it will return FAIL. Means, it will return PASS if I put object in the field of view and returns FAIL if no object in the field of view.
:
: However, it not gives right answer. It just give FAIL statement for both condition. Im sure this is not the mistake from type of image input but something wrong with the condition of if else. Could any body help me please to check where the mistakes are? Please ask me if my question is not clear. Thanks.
:
:
If (*p == 0) you reset 'i' to zero. If you want to count how many pixels are not 0, don't set 'i' to zero if it is (just do nothing)...
For instance, if the last *p you check is zero, 'i' will be zero if you check it against 10, and this is not what you want...
Hope this helps,
Pruyque