現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
0 投票
hi chandra, what should i do if i want to display the intersection portion.
1 件のコメント
Image Analyst
2011 年 12 月 6 日
There is no context for this question. You should reply to your other thread and delete this one, or at the very least, put in a link to the other thread that you split off from.
採用された回答
Chandra Kurniawan
2011 年 12 月 6 日
Hello,
Sorry for waiting.
Here the code :
array = uint8(intersection);
for row = size(intersection,1) : -1 : 1
if ~any(find(intersection(row,:)))
array(row,:) = [];
end
end
for col = size(intersection,2) : -1 : 1
if ~any(find(intersection(:,col)))
array(:,col) = [];
end
end
imshow(array);
19 件のコメント
David Young
2011 年 12 月 6 日
It would be better to edit this into the previous answer, so as to avoid proliferation of questions.
k.v.swamy
2011 年 12 月 6 日
i have written the below code can u modify that
clc;
clear all;
close all;
I = double(imread('cameraman.tif'));
J = double(I);
J(115:155, 192:204) = 50;
imshow(uint8(I)),figure,imshow(uint8(J))
xcount=0;ycount=0;
l=length(I);
s=zeros(l,l)
for i=1:l
xcount=xcount+1;
for j=1:i
if I(i,j)==J(i,j)
ycount=ycount+1;
s(xcount,ycount)=I(i,j);
elseif I(i,j)~=J(i,j)
s(xcount,ycount)=0;
end
end
end
figure,imshow(s)
Chandra Kurniawan
2011 年 12 月 6 日
Here, I modify the code from my last own code
clear; clc;
I = double(imread('cameraman.tif'));
J = double(I);
J(115:155, 192:204) = 50;
intersection = abs(J - I);
array = uint8(intersection);
for row = size(intersection,1) : -1 : 1
if ~any(find(intersection(row,:)))
array(row,:) = [];
end
end
for col = size(intersection,2) : -1 : 1
if ~any(find(intersection(:,col)))
array(:,col) = [];
end
end
imshow(uint8(I)); title('Image A');
figure, imshow(uint8(J)); title('Image B');
figure, imshow(uint8(array)); title('Intersection A and B');
k.v.swamy
2011 年 12 月 6 日
but we need to get the intersection portion,what v r getting is the area which is not common to the two images.if u dont mind can u look at the code what i have written.
k.v.swamy
2011 年 12 月 6 日
while i was executing that code it is going to a infinite loop.
Chandra Kurniawan
2011 年 12 月 6 日
Why did you write 'for j = 1 : i'?
Did you mean 'for j = 1 : l'??
It makes your final size of 's' becomes '256 x 32896'.
The size of 's' might be 256 x 256, right??
Chandra Kurniawan
2011 年 12 月 6 日
I modified it once again.
Maybe this is what you mean??
clear; clc;
I = double(imread('cameraman.tif'));
J = double(I);
J(115:155, 192:204) = 50;
imshow(uint8(I)),
figure, imshow(uint8(J));
xcount = 0; ycount = 0;
l = length(I);
s = zeros(l, l);
for i = 1 : l
xcount = xcount + 1;
for j = 1 : l
if I(i,j) == J(i,j)
ycount = ycount + 1;
%s(xcount, ycount) = I(i,j);
s(i,j) = I(i,j);
elseif I(i,j) ~= J(i,j)
%s(xcount,ycount)=0;
s(i,j) = 0;
end
end
end
figure, imshow(uint8(s));
k.v.swamy
2011 年 12 月 6 日
yes i got your statement.is it the right way of writing the code.can u suggest any modification in that so that i can continue with that.
Chandra Kurniawan
2011 年 12 月 6 日
So, my last modified code is right??
Your code works well. So, you can ignore writing 'xcount = 0;' and 'ycount = 0;'.
You don't need to use this variable as a element counter.
You just need i and j.
So, I replaced '%s(xcount, ycount) = I(i,j);' with 's(i,j) = I(i,j);'
And '%s(xcount,ycount)=0;' with 's(i,j) = 0;'
You ask me for any modification so that you can continue..
So, what will you do with your next step??
Chandra Kurniawan
2011 年 12 月 6 日
Does it clear for you? :)
k.v.swamy
2011 年 12 月 6 日
fine chandra,sorry for the delay as i went outside.what should be the limits of i and j.i think i varies from 1 to 256 and j varies from 1 to 256.pl reply.
Chandra Kurniawan
2011 年 12 月 6 日
Yes, of course.
Because i represents image height [row] and j represent image width [column].
So, both of value are from 1 to 256 as height and width of cameraman.tif
k.v.swamy
2011 年 12 月 6 日
iam getting the common area,but iam unableto show the non intersection region.
k.v.swamy
2011 年 12 月 6 日
yes chandra workin fine iam pasting the code also
clc;
clear all;
close all;
I = double(imread('cameraman.tif'));
J = double(I);
J(115:155, 192:204) = 50;
imshow(uint8(I)),figure,imshow(uint8(J))
l=length(I);
for i=1:256
for j=1:256
if I(i,j)==J(i,j)
s(i,j)=I(i,j);
elseif I(i,j)~=J(i,j)
s(i,j)=255;
end
end
end
figure,imshow(uint8(s))
pl hav a look and giv me reply.
Chandra Kurniawan
2011 年 12 月 6 日
What does 'non intersection region'??
Can you tell me which area that you mean??
Yes, I have saw your code.
Why do you fill the intersection area with white pixels [255]?
It seem good if filled with black pixels.
k.v.swamy
2011 年 12 月 6 日
s it is workin.as i have taken s(i,j)=255; iam able to recognize the intersection area.
k.v.swamy
2011 年 12 月 7 日
hi chandra,its me k.the code which we have written works if the images are of same size.how to write the code for two different images.
Chandra Kurniawan
2011 年 12 月 7 日
Hi, k
I think it is impossible.
You can only do matrix subtraction if both of dimension and size are same.
If we know about matrix concept, if we have matrix A [p x q] and B [r x s], subtraction matrix A with matrix B can be occur only is p == r and q == s.
So, you cannot perform it with different size of two matrices.
k.v.swamy
2011 年 12 月 7 日
yes i do agree with the answer,but in my assignment iam given two sets of images for which i have to find the intersection
https://picasaweb.google.com/103266594409982679463/ImagesSet1?authuser=0&feat=directlink
https://picasaweb.google.com/103266594409982679463/IMAGESSET2?authuser=0&feat=directlink
i hav given u the links and i have written the code like
clc;
clear all;
close all;
I = double(imread('work.jpg'));
J = double(imread('work1.jpg'));
imshow(uint8(I)),figure,imshow(uint8(J))
l=length(I);
for i=1:l
for j=1:l
if i>1200
i=1200
end
if I(i,j)==J(i,j)
s(i,j)=I(i,j);
elseif I(i,j)~=J(i,j)
k(i,j)=I(i,j);
end
end
end
figure,imshow(uint8(k))
pl verify for once
その他の回答 (1 件)
Chandra Kurniawan
2011 年 12 月 7 日
I got little confused with your question.
Let me pick one picture.

Then which another picture will be intersected with that image??
3 件のコメント
k.v.swamy
2011 年 12 月 8 日
If the image u have taken is from set 1 then take another image from set 2 and I assume image from set 1 has work and from set2 as work1
Pls verify the code does it work
Waiting for u r reply
Thank u
k.v.swamy
2011 年 12 月 8 日
chandra if u get any clue pl reply me.
k.v.swamy
2011 年 12 月 9 日
hi chandra,can u pl look at my problem and giv me reply.
カテゴリ
ヘルプ センター および File Exchange で Image Arithmetic についてさらに検索
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
